eVERSION = 3.00 _htmlreport _html.vcxcustom _htmllabeldcdesignerwindow = Label Designer creportfileext = lbx creportfileext2 = lbt Name = "_htmllabel" PROCEDURE runreport LOCAL lcScope lcScope=this.cScope LABEL FORM (this.cReportFile) &lcScope NOCONSOLE TO FILE (this.cOutFile) ASCII ENDPROC _html.h~xɁ+_xmltag_html.hPixelsXML tag class.Class1_htmltag_xmltag9xmltext lxmlobject *xmltext_access *xmltext_assign custom _html.vcx_htmlsaveasdialog commandbutton1 _html.vcxClass1Pixels_html.h _htmllabel_html.hv Ɂ+ _htmldocument _html.vcxcustom _htmlmenuName = "_htmlmenu" ~PROCEDURE generatemenu IF this.lMessageBar SET MESSAGE TO M_GENERATING_HTML_LOC+": ("+this.cSourceFile+") ..." ENDIF SCAN ALL FOR NOT EMPTY(Prompt) IF NOT INLIST(ObjCode,77,78) OR EMPTY(Prompt) LOOP ENDIF this.Body.AddItem(ALLTRIM(STRTRAN(Prompt,"\<",""))) IF NOT EMPTY(Message) this.Body.AddTagItem("br") this.Body.AddItem(ALLTRIM(Message)) ENDIF this.Body.AddTagItem("hr") ENDSCAN ENDPROC PROCEDURE generate LOCAL lcSourceFile,llSuccessful,lnLastSelect,lcAlias IF NOT DODEFAULT() OR EMPTY(this.cSourceFile) RETURN .F. ENDIF lcSourceFile=ALLTRIM(this.cSourceFile) IF NOT FILE(lcSourceFile) this.MsgBox(M_FILE_LOC+[ "]+lcSourceFile+[" ]+M_NOT_FOUND_LOC+[.]) RETURN .F. ENDIF lnLastSelect=SELECT() SELECT 0 lcAlias=LOWER(SYS(2015)) USE (this.cSourceFile) ALIAS (lcAlias) IF NOT USED(lcAlias) SELECT (lnLastSelect) IF this.lMessageBar SET MESSAGE TO ENDIF RETURN .F. ENDIF SET FILTER TO NOT DELETED() LOCATE llSuccessful=this.GenerateMenu() IF USED(lcAlias) USE IN (lcAlias) ENDIF SELECT (lnLastSelect) IF this.lMessageBar SET MESSAGE TO ENDIF RETURN llSuccessful ENDPROC _html.h~xɁ+_htmltag_html.h lhtmlobject PixelsHTML tag class.Class_custom_htmltagcustom _base.vcx_html.hv Ɂ+_htmlcreatetable_html.hPixelsPROCEDURE Click LOCAL lcFileName lcFileName=LOWER(GETFILE("htm;html;asp",M_SAVE_LOC,M_SAVE_LOC,0,M_SAVE_AS_LOC)) IF EMPTY(lcFileName) RETURN ENDIF thisform.txtOutFile.Value=lcFileName ENDPROC nfieldcount = 0 csourcetable = "" ntablestyle = 0 cthattributes = ctrattributes = ctdattributes = cpregeneratetablescript = cpostgeneratetablescript = cscope = ALL Name = "_htmltable" Top = 12 Left = 276 Height = 23 Width = 75 FontName = "MS Sans Serif" FontSize = 8 Caption = "OK" Default = .T. TabIndex = 1 Name = "cmdOK" PixelsTop = 41 Left = 276 Height = 23 Width = 75 FontName = "MS Sans Serif" FontSize = 8 Cancel = .T. Caption = "Cancel" TabIndex = 2 Name = "cmdCancel" Class1 _styletagPixels1 _htmldocumentClass1*generatemenu Pixels_html.h _htmlmenu_html.h~xɁ+_custom _base.vcxcustom_itemcollectionKlength = 0 count = 0 lautosetobjectrefs = .T. Name = "_itemcollection" length_access length_assign sPROCEDURE length_access RETURN this.GetItemCount() ENDPROC PROCEDURE length_assign LPARAMETERS vNewVal RETURN this.SetItemCount(m.vNewVal) ENDPROC PROCEDURE getitemcount RETURN this.oHost.nItemCount ENDPROC PROCEDURE count_access RETURN this.GetItemCount() ENDPROC PROCEDURE count_assign LPARAMETERS vNewVal RETURN this.SetItemCount(vNewVal) ENDPROC PROCEDURE setitemcount LPARAMETERS tnNewCount RETURN this.oHost.SetItemCount(tnNewCount) ENDPROC PROCEDURE Init LPARAMETERS toHost IF NOT DODEFAULT() RETURN .F. ENDIF IF VARTYPE(toHost)=="O" this.oHost=toHost ENDIF ENDPROC  4%rU BUTHISHTMLTEXT UVNEWVALxmltext_access,xmltext_assignO1320Uz)F --%Ul8TCC htm;html;aspSaveSaveSave As@%CRBTU LCFILENAMETHISFORM TXTOUTFILEVALUEClick,1qAA12)- optiongroup6_custom_htmlcreatetable1_html.h~xɁ+ _htmltable_html.hPixelsClass_htmltag _styletagcustomcustom _htmlreportClassClass1qlength count *length_access *length_assign *getitemcount *count_access *count_assign *setitemcount PixelsItems collection class._html.h_itemcollection_html.hv Ɂ+_htmltag _html.vcxcustom _htmldocumentogentag = .NULL. lheadtag = .T. lbodytag = .T. tagname = HTML cnorefreshielinktaglist = html,head,body,style Name = "_htmldocument" ePROCEDURE generate IF this.lRelease RETURN .F. ENDIF IF VARTYPE(this.oGenTag)=="O" this.oGenTag.Clear ENDIF ENDPROC PROCEDURE setitems IF NOT DODEFAULT() RETURN .F. ENDIF IF this.lHeadTag this.Head=this.AddTag("HEAD") this.Head.Title=this.Head.AddTag("TITLE") ENDIF IF this.lBodyTag this.Body=this.AddTag("BODY") ENDIF ENDPROC  4S%zU T UTHISFORM OSAVEASHTMLCOUTFILERELEASEClick,112E) optiongroupopgShowcustomClassfstyletext classname *styletext_access *styletext_assign *classname_access *classname_assign  _html.vcx1^creportfile creportfileext creportfileext2 cdesignerwindow *generatereport *runreport PixelsClass16ogentag lmessagebar lheadtag lbodytag *generate PixelsHTML document class._html.h _htmldocument_html.h~xɁ+_html.hv Ɂ+ _evaltext_html.hPixelsClass1! 2%b$wU%CCC GB-TCTC@ TCWFQ G(C' C @ - %C+Q FB- Gm( ~C TCC f H e WINDOWS1Tdbf COMMENTYTfpt2e.TCC Gm(Q FU TCFILENAME LCFILENAMELCCREATEFILENAMELCCLASS LNLASTSELECT LCPLATFORM LCFILEEXTTHISCLASS CLASSLIBRARYOBJNAMEUSERPLATFORM createtable,1qqA!AAqA!AA1AaA27) '%J 4U BUTHISHTMLTEXT UVNEWVAL BUTHISTAGNAMET UVNEWVALTHISTAGNAMEstyletext_access,styletext_assignOclassname_accessrclassname_assign1333q"22Y~ ) T%=/UETCT UTHISFORM OSAVEASHTMLCOUTFILE TXTOUTFILEVALUENSHOWOPGSHOWRELEASETC UTHISENABLEDTHISFORM TXTOUTFILEVALUEClick,Refresh132)7 %U UTHISINTERACTIVECHANGE UTHISFORMCMDOKREFRESHProgrammaticChange,InteractiveChangeV1336^x)2  %UlTRLABEL FORM (this.cReportFile) &lcScope NOCONSOLE TO FILE (this.cOutFile) ASCII ULCSCOPETHISCSCOPE runreport,1q!2)4ctableversion = ("1.4") Name = "_htmlcreatetable" #*generateobject *generatestyle Name = "_htmlobject" custom_htmlsaveasdialog txtOutFiletextboxtextboxPROCEDURE Click thisform.oSaveAsHTML.cOutFile=ALLTRIM(thisform.txtOutFile.Value) thisform.oSaveAsHTML.nShow=thisform.opgShow.Value-1 thisform.Release ENDPROC PROCEDURE Refresh this.Enabled=(NOT EMPTY(thisform.txtOutFile.Value)) ENDPROC formPROCEDURE ProgrammaticChange this.InteractiveChange ENDPROC PROCEDURE InteractiveChange thisform.cmdOK.Refresh ENDPROC FontName = "MS Sans Serif" FontSize = 8 Format = "K" Height = 24 Left = 8 ReadOnly = .T. TabIndex = 3 TabStop = .F. Top = 85 Width = 315 Name = "txtOutFile" _html.hSave As HTML dialog.Pixels$osaveashtml llargefont *setfont Class _htmlobject_html.h_htmlsaveasdialog_htmlsaveasdialog commandbutton commandbutton1custom _html.vcx! 3s%vO'U%C MS Sans Serif$ !C MS Sans Serif$ !C MS Sans Serif$ !C MS Sans Serif$  Ta CFontNameArialBUTHIS LLARGEFONTSETALL- %& UNKEYCODE NSHIFTALTCTRLTHISRELEASE UTHIS QUERYUNLOADT-T-UTHISENABLEDVISIBLEt&G&(Ut&G&(UHG2GAG GG G$(G_ G.R UTHISSETFONT"%C B-G. Usetfont,KeyPressReleaser QueryUnloadActivate DeactivateInitLoadP1d AA3A333Qa3Qa3aaaaaaaQ3qAa2 ,y /Pq"4'"O4))MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0 _html.hv Ɂ+ _htmlobject_html.hv Ɂ+ _base.vcxctableversion *createtable  cmdOutFile commandbuttoncmdOK _htmltableTop = 85 Left = 327 Height = 23 Width = 24 FontName = "MS Sans Serif" FontSize = 8 Caption = "..." TabIndex = 4 Name = "cmdOutFile" _htmlsaveasdialogClassPPROCEDURE Click thisform.oSaveAsHTML.cOutFile="" thisform.Release ENDPROC _htmlsaveasdialogPROCEDURE styletext_access RETURN this.HTMLText ENDPROC PROCEDURE styletext_assign LPARAMETERS m.vNewVal ERROR 1743 ENDPROC PROCEDURE classname_access RETURN this.TagName ENDPROC PROCEDURE classname_assign LPARAMETERS vNewVal this.TagName=m.vNewVal ENDPROC PROCEDURE xmltext_access RETURN this.HTMLText ENDPROC PROCEDURE xmltext_assign LPARAMETERS m.vNewVal ERROR 1743 ENDPROC vcreportfile = creportfileext = frx creportfileext2 = frt cdesignerwindow = Report Designer Name = "_htmlreport" _html.h _htmlreport_html.h~xɁ+ _htmldocument _html.vcx_custom _evaltextctext *evaltext *strtranc ctext = Name = "_evaltext" custom _base.vcx_form _base.vcx_htmlsaveasdialogWDataSession = 2 Height = 120 Width = 358 DoCreate = .T. ShowTips = .T. AutoCenter = .T. BorderStyle = 2 Caption = "Save As HTML" FontName = "MS Sans Serif" FontSize = 8 MaxButton = .F. MinButton = .F. KeyPreview = .T. WindowType = 1 AlwaysOnTop = .T. HelpContextID = 229996601 osaveashtml = .NULL. Name = "_htmlsaveasdialog" PROCEDURE setfont IF FONTMETRIC(1,"MS Sans Serif",8,"")#13 OR ; FONTMETRIC(4,"MS Sans Serif",8,"")#2 OR ; FONTMETRIC(6,"MS Sans Serif",8,"")#5 OR ; FONTMETRIC(7,"MS Sans Serif",8,"")#11 this.lLargeFont=.T. this.SetAll("FontName","Arial") RETURN ENDIF ENDPROC PROCEDURE KeyPress LPARAMETERS nKeyCode, nShiftAltCtrl IF nKeyCode=27 this.Release ENDIF ENDPROC PROCEDURE Release this.QueryUnload ENDPROC PROCEDURE QueryUnload this.Enabled=.F. this.Visible=.F. ENDPROC PROCEDURE Activate ACTIVATE SCREEN SET MESSAGE TO ENDPROC PROCEDURE Deactivate ACTIVATE SCREEN SET MESSAGE TO ENDPROC PROCEDURE Init SET TALK OFF SET COMPATIBLE OFF SET CONFIRM ON SET EXACT OFF SET EXCLUSIVE OFF SET MEMOWIDTH TO 1024 SET MULTILOCKS ON SET SAFETY OFF WAIT CLEAR this.SetFont ENDPROC PROCEDURE Load IF NOT DODEFAULT() RETURN .F. ENDIF SET SAFETY ON ENDPROC styletext = classname = cgetfileext = css;htm;html;asp ltagdeclaration = .T. lendtag = .F. litemcrlf = .F. ltranslatespecialchars = .F. cfileext = css Name = "_styletag" xmltext = lxmlobject = .T. lindent = .T. litemcrlf = .F. cgetfileext = xml;htm;html;asp ltranslatespecialchars = .F. cfileext = xml lfullendtag = .F. Name = "_xmltag"  cmdCancel commandbutton commandbutton _htmldocument2nfieldcount lopentable csourcetable ntablestyle cthattributes ctrattributes ctdattributes cpregeneratetablescript cpostgeneratetablescript *generatetable *generatelisttable *generatedetailtable *refreshfieldlist *getfieldvalue ^afieldlist[1,0] *pregeneratetable *postgeneratetable ( 8%lUG%B-%CO@ UTHISLRELEASEOGENTAGCLEAR%C B-%fTCHEAD"TCTITLE%TCBODYUTHISLHEADTAGHEADADDTAGTITLELBODYTAGBODYgenerate,setitems1qAA3qA!AA2uZ )LAutoSize = .T. ButtonCount = 3 Value = 1 Height = 63 Left = 8 Top = 12 Width = 189 TabIndex = 5 Name = "opgShow" Option1.FontName = "MS Sans Serif" Option1.FontSize = 8 Option1.Caption = "\\T C  T C   T C   .+T C    \#T CC C >\ T - H C  T  C =&.XT C \&lcEvalStr T  C =*z B C =<T CC \2T C +T CC OC _6T C  T  C >% C!T    T %+{{  }}  TC >T C  %C >% !T   B UTCTEXTLCTEXT LCNEWTEXT LCEVALSTRLNATPOSLNATPOS2LNATPOS3LNATPOS4LNCOUNTLNCOUNT2 LLEVLMODELCOLDSTRLCNEWSTRTHISEVALTEXT %C C  U B T %Cm.ExpN1bNT %Cm.ExpN2bNT C > %    B T T T  +apT C C \% d!T  %   #T   C >.ATC  = C  C >\T  % ,!#T   C >% C>l! BU EXPC1EXPC2EXPC3EXPN1EXPN2LCEXPRLNATPOSLNATPOS2LNCOUNTLNCOUNT2evaltext,strtranc1qqrA11AA1AA!BAA1a2A1AAqAQQAAAA3qqAA1AA1AAQQ1AAQQAA1QAAA2DC K)  %&JUe H ^ . BC O BC2^B-UTHIS NTABLESTYLEGENERATELISTTABLEGENERATEDETAILTABLE}   5T >65T  >65T  >6T Ctable T GenTableT !TC C C ( T C TC 8%CCMNLDTYFBI .2TC  C C "TC C  TCN TT SCAN &lcScopebT%C G% HG&(Generating HTML: ( ) CCd Z% ...%TC C C ( <TC ?TCC C C  %C.HTCCCCC  C C C C C C 
%CTC 2TC C C "TC C C ULCHTMLLCSCOPELNCOUNTLCFIELD LCFIELDVALUE LCFIELDTYPE LNRECCOUNT LNRECINDEXLCTHTAGLCTRTAGLCTDTAG LCCAPTIONTHIS CTHATTRIBUTES CTRATTRIBUTES CTDATTRIBUTESOGENTAGBODYADDTAGIDBORDEREVALTEXT NFIELDCOUNT AFIELDLISTCSCOPE LMESSAGEBAR CSOURCETABLE GETFIELDVALUE VALIDTEXT TRANSLATEITEMADDITEM 5T >65T >6T Ctable T  T TCN TT SCAN &lcScopeT%C G% HG&(Generating HTML: ( ) CCd Z% ...( 'TC T C ?TCC C C  %C;.HTCCCCC  C C C C C C 
%CTC xTC C C C CC :  C C C C {TC C C C C C 
C C C C C C C ULCHTMLLCSCOPELNCOUNTLCFIELD LCFIELDVALUE LNRECCOUNT LNRECINDEXLCTRTAGLCTDTAG LCCAPTIONTHIS CTRATTRIBUTES CTDATTRIBUTESOGENTAGBODYADDTAGBORDERCSCOPE LMESSAGEBAR CSOURCETABLE NFIELDCOUNT AFIELDLIST GETFIELDVALUE VALIDTEXT TRANSLATEITEMEVALTEXTADDITEM%XT C   TCdatabaseTCDATABASEv%C  G(TC sourcename( TC T%CI3TC.C fieldcaption%CkTCT $T C $T C $T C T %CT%C<G(P G(T   ( TC TCbTC %CTCT T T T T U LCEXPRESSION LCFIELDTYPE LCCAPTIONLCDBNAME LCCURSORNAMELCLASTSETDATABASELNCOUNTTHISNSOURCELISTCOUNT NFIELDCOUNTLAFIELDS AFIELDLIST ASOURCELIST  H  C? BCC` M^ BCC` CLDT BCC_ CNYFB%C BCC_BCCCZ I BCC_BUTCFIELD TCFIELDTYPE TNFIELDSIZE TNDECIMALS0%CBCUTHISCPREGENERATETABLESCRIPTRUNCODE0%CBCUTHISCPOSTGENERATETABLESCRIPTRUNCODE%C C @B-TC TCW TCCC+ CO6T!T  CCӡ % % C0 6CFile ""  not found. B-T TCC]@FQ%C  F%C  #B- G(C' Ta T%C 7CAlias ""  not found. B-T CC&@ F"TCC+COCN CO6  %  T-%2G&(Generating HTML: ( ) ... TC %  %Cz% J Qv%C r # F%C  #%G&( BU LCSOURCEFILE LLSUCCESSFUL LNLASTSELECTLLVIEWLCALIAS LNLASTRECNOLNRECNOTHIS CSOURCEFILE LOPENTABLEMSGBOX CSOURCETABLEREFRESHFIELDLIST NFIELDCOUNT LMESSAGEBARPREGENERATETABLE GENERATETABLEPOSTGENERATETABLE GENSCRIPT generatetable,generatelisttablegeneratedetailtablerefreshfieldlist getfieldvaluepregeneratetablepostgeneratetable_generate1AAqA3q1RQQ1AA!A!QaAAQAAQA!A!AA31RQ1QaAAAAQAAAA3BQqAQ1AAAAAAaAA1AAA31!!A!Aq3!AA13!AA13qA!1aqA!1qAqAqqAA!AA!AAAqAAAqAaA2  8 @[ q9`Rq)BPROCEDURE createtable LPARAMETERS tcFileName LOCAL lcFileName,lcCreateFileName,lcClass,lnLastSelect,lcPlatform,lcFileExt IF VARTYPE(tcFileName)#"C" OR EMPTY(tcFileName) RETURN .F. ENDIF lcFileName=ALLTRIM(tcFileName) lcClass=LOWER(this.Class) lnLastSelect=SELECT() SELECT 0 USE (this.ClassLibrary) AGAIN SHARED SET FILTER TO NOT DELETED() AND LOWER(ObjName)==lcClass LOCATE IF EOF() USE SELECT (lnLastSelect) RETURN .F. ENDIF SET NOCPTRANS TO user SCAN ALL FOR NOT EMPTY(User) lcPlatform=UPPER(ALLTRIM(Platform)) DO CASE CASE lcPlatform=="WINDOWS" lcFileExt="dbf" CASE lcPlatform=="COMMENT" lcFileExt="fpt" OTHERWISE LOOP ENDCASE lcCreateFileName=FORCEEXT(lcFileName,lcFileExt) STRTOFILE(User,lcCreateFileName) ENDSCAN SET NOCPTRANS TO USE SELECT (lnLastSelect) ENDPROC JPROCEDURE generatereport LOCAL lcDesignerWindow,llDesignerWindow lcDesignerWindow=this.cDesignerWindow+" - "+LOWER(JUSTFNAME(this.cSourceFile)) llDesignerWindow=WEXIST(lcDesignerWindow) IF llDesignerWindow RELEASE WINDOW (llDesignerWindow) ENDIF this.RunReport IF FILE(this.cOutFile) this.Body.bgcolor="white" this.oGenTag=this.Body.AddTag("font") this.oGenTag.Face="Courier New" this.oGenTag.PreTag=this.oGenTag.AddTag("pre") this.oGenTag.PreTag.AddText(FILETOSTR(this.cOutFile)) ENDIF ERASE (this.cReportFile) ERASE (FORCEEXT(this.cReportFile,this.cReportFileExt2)) IF llDesignerWindow MODIFY REPORT (this.cSourceFile) NOWAIT ENDIF ENDPROC PROCEDURE runreport LOCAL lcScope lcScope=this.cScope REPORT FORM (this.cReportFile) &lcScope NOCONSOLE TO FILE (this.cOutFile) ASCII ENDPROC PROCEDURE generate LOCAL lcSourceFile,llSuccessful,lnLastSelect,lcAlias IF NOT DODEFAULT() OR EMPTY(this.cSourceFile) RETURN .F. ENDIF lcSourceFile=ALLTRIM(this.cSourceFile) IF NOT FILE(lcSourceFile) this.MsgBox(M_FILE_LOC+[ "]+lcSourceFile+[" ]+M_NOT_FOUND_LOC+[.]) RETURN .F. ENDIF this.cReportFile=FORCEPATH(LOWER(SYS(2015))+"."+this.cReportFileExt, ; JUSTPATH(lcSourceFile)) lnLastSelect=SELECT() lcAlias=LOWER(SYS(2015)) SELECT 0 USE (lcSourceFile) AGAIN SHARED ALIAS (lcAlias) IF NOT USED(lcAlias) SELECT (lnLastSelect) RETURN .F. ENDIF IF this.lMessageBar SET MESSAGE TO M_GENERATING_HTML_LOC+": ("+lcSourceFile+") ..." ENDIF COPY TO (this.cReportFile) FOR NOT DELETED() IF USED(lcAlias) USE IN (lcAlias) ENDIF IF NOT FILE(this.cReportFile) SELECT (lnLastSelect) IF this.lMessageBar SET MESSAGE TO ENDIF RETURN .F. ENDIF SELECT (this.nWorkArea) llSuccessful=this.GenerateReport() SELECT (lnLastSelect) IF this.lMessageBar SET MESSAGE TO ENDIF RETURN llSuccessful ENDPROC PROCEDURE generateobject LPARAMETERS toObject,toParent LOCAL oParent,oDivTag,oTag,oTag2,lcBaseClass,lcObjName,llParent,lnCount LOCAL llPixels,llPixelsChanged,lcMember,lvValue LOCAL laObjects[1],laMembers[1] IF VARTYPE(toObject)#"O" OR (EMPTY(this.cSourceFile) AND ; PEMSTATUS(toObject,"Visible",5) AND ; VARTYPE(toObject.Visible)=="L" AND NOT toObject.Visible) RETURN .F. ENDIF lcBaseClass=LOWER(toObject.BaseClass) lcObjName=toObject.Name IF VARTYPE(toParent)=="O" llPixels=.T. oParent=toParent lcObjName=oParent.ID+"_"+lcObjName ELSE llParent=.T. oParent=this.Body ENDIF llPixels=(NOT lcBaseClass=="form" OR toObject.ScaleMode=3) IF NOT llPixels toObject.ScaleMode=3 llPixelsChanged=PEMSTATUS(toObject,"ScaleMode",0) ENDIF IF this.lMessageBar SET MESSAGE TO M_GENERATING_HTML_LOC+": ("+lcObjName+") ..." ENDIF oDivTag=oParent.NewTag("div") oDivTag.ID="div_"+lcObjName oTag=.NULL. DO CASE CASE lcBaseClass=="checkbox" oTag=oDivTag.NewTagNoEnd("input") oTag.ID=lcObjName oTag.Name=lcObjName oTag.Type="checkbox" oTag.Checked=(NOT EMPTY(toObject.Value)) oTag.AddItem(toObject.Caption) this.GenerateStyle(oTag,toObject) CASE lcBaseClass=="combobox" OR lcBaseClass=="listbox" oTag=oDivTag.NewTag("select") oTag.ID=lcObjName oTag.Name=lcObjName oTag.Size=IIF(lcBaseClass=="listbox",toObject.ListCount,1) this.GenerateStyle(oTag,toObject) FOR lnCount = 1 TO toObject.ListCount oTag2=oTag.AddTagNoEnd("option") oTag2.Value=lnCount oTag2.AddItem(toObject.List[lnCount]) this.GenerateStyle(oTag2,toObject) ENDFOR CASE lcBaseClass=="commandbutton" oTag=oDivTag.NewTagNoEnd("input") oTag.ID=lcObjName oTag.Name=lcObjName IF EMPTY(toObject.Picture) oTag.Type="button" ELSE oTag.Type="image" oTag.Src=toObject.Picture ENDIF oTag.Value=toObject.Caption this.GenerateStyle(oTag,toObject) CASE lcBaseClass=="commandgroup" oTag=oDivTag.NewTag("div") oTag.ID=lcObjName oTag.Name=lcObjName this.GenerateStyle(oTag,toObject) FOR lnCount = 1 TO toObject.ButtonCount this.GenerateObject(toObject.Buttons[lnCount],oTag) ENDFOR CASE lcBaseClass=="editbox" oTag=oDivTag.NewTag("textarea") oTag.ID=lcObjName oTag.Name=lcObjName oTag.AddItem(toObject.Value) this.GenerateStyle(oTag,toObject) CASE INLIST(lcBaseClass+" ","form ","toolbar ") oTag=oDivTag.NewTag("form") oTag.ID=lcObjName oTag.Name=lcObjName this.GenerateStyle(oTag,toObject) this.Body.bgColor=this.HexColor(toObject.BackColor) CASE lcBaseClass=="label" oTag=oDivTag.NewTag("span") oTag.ID=lcObjName oTag.Name=lcObjName oTag.AddItem(toObject.Caption) this.GenerateStyle(oTag,toObject) CASE lcBaseClass=="olecontrol" oTag=oDivTag.NewTag("object") oTag.ID=lcObjName oTag.Name=lcObjName IF PEMSTATUS(toObject,"Height",5) oTag.Height=toObject.Height oTag.Width=toObject.Width ENDIF oTag.ClassID="CLSid:"+CHRTRAN(COMCLASSINFO(toObject,4),"{}","") IF TYPE("toObject.object")=="O" FOR lnCount = 1 TO AMEMBERS(laMembers,toObject.object) lcMember=LOWER(laMembers[lnCount]) IF NOT PEMSTATUS(toObject.object,lcMember,0) LOOP ENDIF lvValue=toObject.object.&lcMember IF VARTYPE(lvValue)=="O" LOOP ENDIF IF VARTYPE(lvValue)=="L" lvValue=IIF(lvValue,"True","False") ENDIF oTag2=oTag.AddTagNoEnd("param") oTag2.Name=lcMember oTag2.Value=TRANSFORM(lvValue) ENDFOR ENDIF CASE lcBaseClass=="optiongroup" oTag=oDivTag.NewTag("div") oTag.ID=lcObjName oTag.Name=lcObjName this.GenerateStyle(oTag,toObject) FOR lnCount = 1 TO toObject.ButtonCount oTag2=oTag.AddTagNoEnd("input") oTag2.Type="radio" oTag2.Value=lnCount oTag2.Checked=(toObject.Value=lnCount) oTag2.ID=lcObjName oTag2.Name=lcObjName oTag2.AddItem(toObject.Buttons[lnCount].Caption) this.GenerateStyle(oTag2,toObject) ENDFOR CASE lcBaseClass=="textbox" oTag=oDivTag.NewTagNoEnd("input") oTag.ID=lcObjName oTag.Name=lcObjName oTag.Type=IIF(EMPTY(toObject.PasswordChar),"TEXT","PASSWORD") oTag.Value=toObject.Value IF NOT EMPTY(+toObject.MaxLength) oTag.MaxLength=toObject.MaxLength ENDIF this.GenerateStyle(oTag,toObject) ENDCASE IF ISNULL(oTag) oDivTag.Release oParent.AddComment(M_OBJECT_LOC+[ "]+lcObjName+[" (]+lcBaseClass+ ; [) ]+M_NOT_SUPPORTED_LOC+[.]) RETURN .F. ENDIF IF NOT llParent this.GenerateStyle(oDivTag,toObject,.T.) ENDIF oParent.AddTag(oDivTag) oDivTag.AddItem(oTag) IF INLIST(lcBaseClass+" ","custom ","container ","formset ","form ","toolbar ") FOR lnCount = 1 TO AMEMBERS(laObjects,toObject,2) this.GenerateObject(toObject.&laObjects[lnCount],oTag) ENDFOR ENDIF IF NOT llPixels IF llPixelsChanged toObject.ScaleMode=0 ELSE toObject.ResetToDefault("ScaleMode") ENDIF ENDIF ENDPROC PROCEDURE generatestyle LPARAMETERS toTag,toObject,tlContainer LOCAL oStyleTag,lcStyle oStyleTag=toTag.NewStyleTag() IF PEMSTATUS(toObject,"Left",5) AND tlContainer oStyleTag.position=IIF(tlContainer,"absolute","relative")+ ; "; left:"+TRANSFORM(toObject.Left)+"; "+ ; "Top:"+TRANSFORM(toObject.Top) ENDIF IF NOT tlContainer IF PEMSTATUS(toObject,"FontName",5) oStyleTag.font_family=toObject.FontName ENDIF IF PEMSTATUS(toObject,"FontSize",5) oStyleTag.font_size=TRANSFORM(toObject.FontSize)+"pt" ENDIF IF PEMSTATUS(toObject,"ForeColor",5) oStyleTag.color=this.HexColor(toObject.ForeColor) ENDIF IF PEMSTATUS(toObject,"FontBold",5) AND toObject.FontBold oStyleTag.Font_weight="bold" ENDIF IF PEMSTATUS(toObject,"FontItalic",5) AND toObject.FontItalic oStyleTag.font_style="italic" ENDIF IF PEMSTATUS(toObject,"FontUnderline",5) AND toObject.FontUnderline oStyleTag.text_decoration="underline" ENDIF IF PEMSTATUS(toObject,"BackColor",5) oStyleTag.background=this.HexColor(toObject.BackColor) ENDIF ENDIF lcStyle=oStyleTag.StyleText oStyleTag.Release IF EMPTY(lcStyle) RETURN .F. ENDIF toTag.Style=ALLTRIM(lcStyle) ENDPROC PROCEDURE generate LOCAL llSuccessful IF NOT DODEFAULT() OR VARTYPE(this.oSource)#"O" RETURN .F. ENDIF llSuccessful=this.GenerateObject(this.oSource) IF this.lMessageBar SET MESSAGE TO ENDIF RETURN llSuccessful ENDPROC  -htmltext tagname lendtag coutfile cgetfileext clastgetfileext lhtmlobject tagtext cattributes ctempoutfile nindex csourcefile nitemcount osource ie lielink oitemcollection cieclass citemcollectionclass citemcollectionclasslibrary lemptytag nattributecount cdefaulttagclass cdefaulttagclasslibrary cindenttext cindentchar nindentcharcount lindent cscope ltagcrlf litemcrlf oparent nmaxtagwidth lautosetitems document lnavigatehost ietag ltaglowercase ltagdeclaration ltaguppercase cnorefreshielinktaglist cproperties cgenhtmlalias cgenhtmltable nsourcelistcount cevaltextclass cevaltextclasslibrary oevaltext orecord oproperties lsortattributes ouser lenabled lautoevaltext cruncodeprogram lrelativepath otopparent cstyletagclass cstyletagclasslibrary cxmltagclass cxmltagclasslibrary ltranslatespecialchars nworkarea cfileext lfullendtag *htmltext_access *htmltext_assign *gethtmltext *gethtmlelementtext *viewsource *savefile ^item[1,0] *getfile *tagtext_access *tagtext_assign *gettagtext *additem Adds a new item to a ComboBox or ListBox control, optionally allowing you to specify the item's index. *addtag *releaseitems *shellexecute *show Displays a Form and specifies if the Form is modal or modeless. *createoutfile *coutfile_assign *deletetempoutfile *deleteoutfile *releaseielink *createielink *item_access *item_assign *getitemcollection ^aattributes[1,0] *addattribute *this_access *getattributes *tagname_access *tagname_assign *newtag *name_assign *height_assign *width_assign *refreshielink *addtagitem *gettags *updatechildalltags *setitems *ie_access *document_access *document_assign *lielink_access *lielink_assign *refresh Repaints a Form or control and refreshes any values. *navigate *getietag *ietag_access *ietag_assign *ie_assign *addcrlfitem *inherittag *updatechildtags *addstyletag *addtagnoend *newstyletag *newtagnoend *ltaglowercase_access *ltaglowercase_assign *ltaguppercase_access *ltaguppercase_assign *addevalitem *getitems *getobjectrefitems *setproperties *clear Clears the contents of a ComboBox or ListBox control. *addcomment *addgenhtmlfield *getgenhtmlfield *validtext *addtext *oevaltext_access *evaltext *translateitem *msgbox *runcode *runscript *releaseattributes *genscript *filepath *releaseobjects *nitemcount_access *nitemcount_assign *setitemcount *getitemcount *addxmltag *newxmltag *hexcolor ^asourcelist[1,0]  NPROCEDURE evaltext LPARAMETERS tcText LOCAL lcText,lcNewText,lcEvalStr,lnAtPos,lnAtPos2,lnAtPos3,lnAtPos4 LOCAL lnCount,lnCount2,llEvlMode,lcOldStr,lcNewStr IF INLIST(VARTYPE(m.tcText),"X","O") OR EMPTY(m.tcText) RETURN "" ENDIF m.lcText=TRANSFORM(m.tcText) m.lcNewText=m.lcText m.lnAtPos3=1 DO WHILE .T. m.lnAtPos=AT("{{",SUBSTR(m.lcText,m.lnAtPos3)) IF m.lnAtPos=0 EXIT ENDIF m.lnAtPos2=AT("}}",SUBSTR(m.lcText,m.lnAtPos+m.lnAtPos3-1)) IF m.lnAtPos2=0 EXIT ENDIF m.lnAtPos4=AT("{{",SUBSTR(m.lcText,m.lnAtPos+m.lnAtPos3+1)) IF m.lnAtPos4>0 AND m.lnAtPos4 }}. m.lcEvalStr="" CASE LEFT(m.lcEvalStr,1)=="*" RETURN "" CASE LEFT(m.lcEvalStr,1)=="<" m.lcEvalStr=FILETOSTR(SUBSTR(m.lcEvalStr,2)) &&; Error occurred during evaluation of {{< }}. OTHERWISE m.lcEvalStr=EVALUATE(m.lcEvalStr) &&; Error occurred during evaluation of {{ }}. ENDCASE m.lcNewStr=IIF(VARTYPE(m.lcEvalStr)=="O","",TRANSFORM(m.lcEvalStr)) m.lcNewText=STRTRAN(m.lcNewText,m.lcOldStr,m.lcNewStr) m.lnAtPos2=m.lnAtPos+LEN(m.lcNewStr) IF m.lnAtPos2<=0 EXIT ENDIF m.lnAtPos3=m.lnAtPos3+m.lnAtPos2 ENDDO lnCount2=0 DO WHILE "{{"$m.lcNewText AND "}}"$m.lcNewText lnCount=LEN(m.lcNewText) m.lcNewText=this.EvalText(m.lcNewText) IF lnCount=LEN(m.lcNewText) IF lnCount2>=2 EXIT ENDIF lnCount2=lnCount2+1 ENDIF ENDDO RETURN m.lcNewText ENDPROC PROCEDURE strtranc LPARAMETERS ExpC1,ExpC2,ExpC3,ExpN1,ExpN2 LOCAL lcExpr,lnAtPos,lnAtPos2,lnCount,lnCount2 IF EMPTY(m.ExpC1) OR EMPTY(m.ExpC2) RETURN m.ExpC1 ENDIF lcExpr=m.ExpC1 IF TYPE("m.ExpN1")#"N" m.ExpN1=1 ENDIF IF TYPE("m.ExpN2")#"N" m.ExpN2=LEN(m.ExpC1) ENDIF IF m.ExpN1<1 OR m.ExpN2<1 RETURN m.ExpC1 ENDIF m.lnCount=0 m.lnCount2=0 m.lnAtPos2=1 DO WHILE .T. m.lnAtPos=ATC(m.ExpC2,SUBSTR(lcExpr,m.lnAtPos2)) IF m.lnAtPos=0 EXIT ENDIF m.lnCount=m.lnCount+1 IF m.lnCount=m.ExpN2 EXIT ENDIF m.lnAtPos2=m.lnAtPos+m.lnAtPos2+LEN(m.ExpC3)-1 IF m.lnAtPos2>LEN(lcExpr) EXIT ENDIF ENDDO RETURN lcExpr ENDPROC PROCEDURE generatetable DO CASE CASE this.nTableStyle=0 RETURN this.GenerateListTable() CASE this.nTableStyle=1 RETURN this.GenerateDetailTable() OTHERWISE RETURN .F. ENDCASE ENDPROC PROCEDURE generatelisttable LOCAL lcHTML,lcScope,lnCount LOCAL lcField,lcFieldValue,lcFieldType,lnRecCount,lnRecIndex LOCAL lcTHTag,lcTRTag,lcTDTag,lcCaption lcTHTag=""," "+this.cTHAttributes+">") lcTRTag=""," "+this.cTRAttributes+">") lcTDTag=""," "+this.cTDAttributes+">") this.oGenTag=this.Body.AddTag("table") this.oGenTag.ID="GenTable" this.oGenTag.Border=1 lcHTML=this.EvalText(lcTRTag)+CR_LF FOR lnCount = 1 TO this.nFieldCount lcCaption=this.aFieldList[lnCount,5] lcFieldType=this.aFieldList[lnCount,2] IF NOT INLIST(lcFieldType,"C","M","N","L","D","T","Y","F","B","I") LOOP ENDIF lcHTML=lcHTML+this.EvalText(lcTHTag)+lcCaption+""+CR_LF ENDFOR lcHTML=lcHTML+""+CR_LF lnRecCount=RECCOUNT() lnRecIndex=0 lcScope=this.cScope SCAN &lcScope lnRecIndex=lnRecIndex+1 IF MOD(lnRecIndex,10)=0 IF this.lMessageBar SET MESSAGE TO M_GENERATING_HTML_LOC+": ("+this.cSourceTable+") "+ ; ALLTRIM(STR(100*lnRecIndex/lnRecCount))+"% ..." ENDIF ENDIF lcHTML=lcHTML+this.EvalText(lcTRTag)+CR_LF FOR lnCount = 1 TO this.nFieldCount lcField=this.aFieldList[lnCount,1] lcFieldValue=this.GetFieldValue(lcField,this.aFieldList[lnCount,2], ; this.aFieldList[lnCount,3],this.aFieldList[lnCount,4]) IF ISNULL(lcFieldValue) LOOP ENDIF lcFieldValue=STRTRAN(STRTRAN(STRTRAN(this.ValidText(this.TranslateItem(lcFieldValue)), ; CR_LF,CR),LF,CR),CR,"
") IF EMPTY(lcFieldValue) lcFieldValue=this.ValidText(" ") ENDIF lcHTML=lcHTML+this.EvalText(lcTDTag)+lcFieldValue+""+CR_LF ENDFOR lcHTML=lcHTML+""+CR_LF ENDSCAN this.oGenTag.AddItem(lcHTML) ENDPROC PROCEDURE generatedetailtable LOCAL lcHTML,lcScope,lnCount LOCAL lcField,lcFieldValue,lnRecCount,lnRecIndex LOCAL lcTRTag,lcTDTag,lcCaption lcTRTag=""," "+this.cTRAttributes+">") lcTDTag=""," "+this.cTDAttributes+">") this.oGenTag=this.Body.AddTag("table") this.oGenTag.Border=0 lcHTML="" lnRecCount=RECCOUNT() lnRecIndex=0 lcScope=this.cScope SCAN &lcScope lnRecIndex=lnRecIndex+1 IF MOD(lnRecIndex,10)=0 IF this.lMessageBar SET MESSAGE TO M_GENERATING_HTML_LOC+": ("+this.cSourceTable+") "+ ; ALLTRIM(STR(100*lnRecIndex/lnRecCount))+"% ..." ENDIF ENDIF FOR lnCount = 1 TO this.nFieldCount lcField=this.aFieldList[lnCount,1] lcCaption=this.aFieldList[lnCount,5] lcFieldValue=this.GetFieldValue(lcField,this.aFieldList[lnCount,2], ; this.aFieldList[lnCount,3],this.aFieldList[lnCount,4]) IF ISNULL(lcFieldValue) LOOP ENDIF lcFieldValue=STRTRAN(STRTRAN(STRTRAN(this.ValidText(this.TranslateItem(lcFieldValue)), ; CR_LF,CR),LF,CR),CR,"
") IF EMPTY(lcFieldValue) lcFieldValue=this.ValidText(" ") ENDIF lcHTML=lcHTML+this.EvalText(lcTRTag)+CR_LF+ ; this.EvalText(lcTDTag)+ ; this.ValidText(this.TranslateItem(lcCaption)+": ")+ ; lcFieldValue+""+CR_LF+ ; ""+CR_LF ENDFOR lcHTML=lcHTML+this.EvalText(lcTRTag)+CR_LF+ ; this.EvalText(lcTDTag)+CR_LF+ ; "
"+CR_LF+ ; ""+CR_LF+ ; ""+CR_LF ENDSCAN this.oGenTag.AddItem(lcHTML) ENDPROC PROCEDURE refreshfieldlist LOCAL lcExpression,lcFieldType,lcCaption,lcDBName,lcCursorName,lcLastSetDatabase,lnCount IF this.nSourceListCount=0 this.nFieldCount=AFIELDS(laFields) DIMENSION this.aFieldList[this.nFieldCount,5] lcDBName=CURSORGETPROP("database") lcLastSetDatabase=SET("DATABASE") IF NOT EMPTY(lcDBName) SET DATABASE TO (lcDBName) ENDIF lcCursorName=CURSORGETPROP("sourcename") FOR lnCount = 1 TO this.nFieldCount lcExpression=laFields[lnCount,1] lcCaption="" IF DBUSED(lcDBName) lcCaption=DBGETPROP(lcCursorName+"."+laFields[lnCount,1],"field","caption") ENDIF IF EMPTY(lcCaption) lcCaption=PROPER(lcExpression) ENDIF this.aFieldList[lnCount,1]=lcExpression this.aFieldList[lnCount,2]=laFields[lnCount,2] this.aFieldList[lnCount,3]=laFields[lnCount,3] this.aFieldList[lnCount,4]=laFields[lnCount,4] this.aFieldList[lnCount,5]=lcCaption ENDFOR IF DBUSED(lcDBName) IF EMPTY(lcLastSetDatabase) SET DATABASE TO ELSE SET DATABASE TO (lcLastSetDatabase) ENDIF ENDIF ELSE this.nFieldCount=this.nSourceListCount DIMENSION this.aFieldList[this.nFieldCount,5] FOR lnCount = 1 TO this.nFieldCount lcExpression=this.aSourceList[lnCount,1] lcFieldType=TYPE(lcExpression) lcCaption=this.aSourceList[lnCount,2] IF EMPTY(lcCaption) lcCaption=PROPER(lcExpression) ENDIF this.aFieldList[lnCount,1]=lcExpression this.aFieldList[lnCount,2]=lcFieldType this.aFieldList[lnCount,3]=0 this.aFieldList[lnCount,4]=0 this.aFieldList[lnCount,5]=lcCaption ENDFOR ENDIF ENDPROC PROCEDURE getfieldvalue LPARAMETERS tcField,tcFieldType,tnFieldSize,tnDecimals DO CASE CASE tcFieldType=="C" RETURN TRIM(EVALUATE(tcField)) CASE tcFieldType=="M" RETURN TRIM(EVALUATE(tcField)) CASE INLIST(tcFieldType,"L","D","T") RETURN TRANSFORM(EVALUATE(tcField)) CASE INLIST(tcFieldType,"N","Y","F","B") IF EMPTY(tnFieldSize) RETURN TRANSFORM(EVALUATE(tcField)) ENDIF RETURN ALLTRIM(STR(EVALUATE(tcField),tnFieldSize+tnDecimals,tnDecimals)) CASE tcFieldType=="I" RETURN TRANSFORM(EVALUATE(tcField)) ENDCASE RETURN .NULL. ENDPROC PROCEDURE pregeneratetable IF EMPTY(this.cPreGenerateTableScript) RETURN ENDIF this.RunCode(this.cPreGenerateTableScript) ENDPROC PROCEDURE postgeneratetable IF EMPTY(this.cPostGenerateTableScript) RETURN ENDIF this.RunCode(this.cPostGenerateTableScript) ENDPROC PROCEDURE generate LOCAL lcSourceFile,llSuccessful,lnLastSelect,llView,lcAlias,lnLastRecNo,lnRecNo IF NOT DODEFAULT() OR EMPTY(this.cSourceFile) RETURN .F. ENDIF lcSourceFile=ALLTRIM(this.cSourceFile) lnLastSelect=SELECT() lnLastRecNo=IIF(USED() AND NOT EOF(),RECNO(),0) llView=("!"$lcSourceFile) this.lOpenTable=(llView OR NOT EMPTY(JUSTEXT(lcSourceFile))) IF this.lOpenTable IF NOT llView AND NOT FILE(lcSourceFile) this.MsgBox(M_FILE_LOC+[ "]+lcSourceFile+[" ]+M_NOT_FOUND_LOC+[.]) RETURN .F. ENDIF this.cSourceTable=lcSourceFile lcAlias=LOWER(SYS(2015)) SELECT 0 USE (lcSourceFile) AGAIN SHARED ALIAS (lcAlias) IF NOT USED(lcAlias) SELECT (lnLastSelect) IF USED() AND lnLastRecNo>0 GO lnLastRecNo ENDIF RETURN .F. ENDIF SET FILTER TO NOT DELETED() lnRecNo=0 ELSE lcAlias=lcSourceFile IF NOT USED(lcAlias) this.MsgBox(M_ALIAS_LOC+[ "]+lcAlias+[" ]+M_NOT_FOUND_LOC+[.]) RETURN .F. ENDIF this.cSourceTable=LOWER(DBF(lcAlias)) SELECT (lcAlias) lnRecNo=IIF(EOF() OR RECNO()>RECCOUNT(),0,RECNO()) ENDIF this.RefreshFieldList IF this.nFieldCount=0 llSuccessful=.F. ELSE IF this.lMessageBar SET MESSAGE TO M_GENERATING_HTML_LOC+": ("+this.cSourceTable+") ..." ENDIF this.PreGenerateTable llSuccessful=this.GenerateTable() IF llSuccessful this.PostGenerateTable this.GenScript ENDIF ENDIF IF USED(lcAlias) IF this.lOpenTable USE IN (lcAlias) ELSE IF USED() AND lnRecNo>0 GO lnRecNo ENDIF ENDIF ENDIF SELECT (lnLastSelect) IF USED() AND lnLastRecNo>0 GO lnLastRecNo ENDIF IF this.lMessageBar SET MESSAGE TO ENDIF RETURN llSuccessful ENDPROC mM 4m4m=[%WKgG^U BCUTHIS GETHTMLTEXT UVNEWVAL% 9 BT !TC  6T T T Ht h%C C d H` CT ;/TCC C {2`TC { !--T< C C t%CT<^%CT<)T< % ZT/T>,%   C TC C TCCTC  %yS% C C   CC=< dTC C T %CC<> B %<%C B%C /% T}C C +T} B%CX B%%!--T-->[ HW*   CR> TCC>=/> CRC C 3 T2WT% C TC C  BU LCHTMLTEXT LCSUBHTMLTEXT LCTAGNAME LCTAGTEXT LCINDENTTEXTLLTAGDECLARATION LLSUBTEXTTHISLENABLEDLTAGDECLARATIONLTAGCRLF CINDENTTEXTTAGNAMETAGTEXT LITEMCRLF CINDENTCHAR LEMPTYTAGLENDTAGGETOBJECTREFITEMSGETITEMS LFULLENDTAG%C2 B TTCTCC _C >/%CC=C _C  TCC\TC%OBC%X  B%O"%C lHTMLObjecth %CHTMLTexthT%CC B B BTC_9% CC {{ }} TC TC % TTC C 9% CC {{ }} TC  BU TVITEM LCHTMLTEXTLVITEM LCVARTYPE LNEVALITEMLENTHISGETHTMLELEMENTTEXTHTMLTEXT LAUTOEVALTEXTEVALTEXT TRANSLATEITEM LITEMCRLF TC%C?B- % %n/:/:B %//% TU TLNOWAITTLNOEDIT LCOUTFILETHIS CREATEOUTFILECOUTFILESCREEN CTEMPOUTFILEDELETETEMPOUTFILE1 (TCCCC6%CTC%CpB-%CCӡTCT%CCӡTCTT%CB-BCU TCOUTFILE LCOUTFILE LCHTMLTEXTTHISCOUTFILEGETFILECFILEEXTHTMLTEXT%C CC |T%C x)TC;;TCC@BCCSave@U TCFILEEXT LCFILEEXTTHIS CGETFILEEXTCLASTGETFILEEXT BCUTHIS GETTAGTEXT UVNEWVALTCTC TC>C>TC%C~ BTC )% C>   B BCC C  U LCTAGTEXT LCTAGTEXT2 LCATTRIBUTES LCTAGNAMELNTAGWIDTHOFFSETTHIS CATTRIBUTESTAGNAME GETATTRIBUTES NMAXTAGWIDTH  5%CCXLCC  q BT %TCCNC86TCCFD %  C  C(TC T1%COC lHTMLObjecth .T  C T C  Q%COW'%ClIndenth 4T T  B%    T TTC_T  BUTVITEMTNINDEXLCITEMLNINDEXOITEMLNITEM LCINDENTTEXTLNCOUNTLAITEMTHIS NITEMCOUNTITEMNINDEX CINDENTTEXT CINDENTCHARNINDENTCHARCOUNTLINDENT LITEMCRLF  TC H3 CCLTC%CO{BTC O TTC2B BU TVTAGNAMETNINDEXOTAG LCVARTYPETHISNEWTAGNINDEXADDITEM (CTC<%COC lHTMLObjecth  |.TTUOITEMLNCOUNTTHISITEMRELEASEC%C? BTC-TCC tcWorkDirbCC6=TCC tcOperationbCC COpen66TCCtcParamsbCC C6.| ShellExecute SHELL32.DLL BCU TCFILENAME TCWORKDIR TCOPERATIONTCPARAMS LCFILENAME LCWORKDIR LCOPERATIONLCPARAMS SHELLEXECUTESHELL32DLLTC%C4B-#%Cthis.IE.VisiblebLmCaCU LCOUTFILETHIS CREATEOUTFILECOUTFILENAVIGATE SHELLEXECUTE%CZ*TCC]\CC]@TTC%%C CC]  B BCU TCOUTFILE LCOUTFILETHIS CTEMPOUTFILECFILEEXTCOUTFILESAVEFILE^TC %CCӡGTChtmTUVNEWVAL LCOUTFILETHISCOUTFILEW%C C0 &B- %C0PB-UTHIS CTEMPOUTFILEW%C C0 &B- %C0PB-UTHISCOUTFILEq% B-,%C AddPropertyh \ TUTLQUITIETHISLIELINKIEQUIT TC%COUTB-T % UTLSHOWOIETHIS RELEASEIELINKCIECLASSIESHOWE%C N+ BCBC UNINDEXTHISGETITEMCOLLECTIONITEMP %C N/ BCT  UVNEWVALNINDEXTHISGETITEMCOLLECTIONITEMi%B%COV#TC BUTHISLRELEASEOITEMCOLLECTIONCITEMCOLLECTIONCLASSCITEMCOLLECTIONCLASSLIBRARY %C(B-TC(|%CCC@C@xBTTUTCMEMBERLCMEMBERLNCOUNTTHISNATTRIBUTECOUNT AATTRIBUTESs%Ch& BC%ChcC BUCMEMBERTHIS ADDPROPERTY ADDATTRIBUTE  #TCCN6T  TT   T -:T;C C C    6% C ( JTC  H4r STC@ rTC@ TCthis.C TC%C=_TC\ H COX. TC_- % =TP T a%LxT TC_T:  L% . T TT="C_" C9T=C_2TC_"T C"'"6T=   % TCTC !%  C>  TF$TCC C  T 9%  CC {{ }} TC  BCUTNTAGWIDTHOFFSETLNTAGWIDTHOFFSET LCATTRIBUTE LCATTRIBUTES LCATTRIBUTES2LCATTRIB LNMAXTAGWIDTHLNCOUNT LCVARTYPE LCDELIMITERLLTAGDECLARATIONLLTAGDECLARATIONADDEDTHIS NMAXTAGWIDTHLTAGDECLARATIONLCDECLARATIONINDENT LITEMCRLF CINDENTCHAR CINDENTTEXTLSORTATTRIBUTES AATTRIBUTESNATTRIBUTECOUNT LTAGLOWERCASE LTAGUPPERCASE TVATTRIBVALUE LAUTOEVALTEXTEVALTEXTT%8TCC@e%aTCCf9% CC {{ }} TC BCU LCTAGNAMETHISTAGNAME LTAGLOWERCASE LTAGUPPERCASE LAUTOEVALTEXTEVALTEXTE%C C, BT UVNEWVALTHISTAGNAME TCC 6 TCC  6TC%COB%CCC T % C  BU TCTAGNAME TLNOINHERIT TCTAGCLASSTCTAGCLASSLIBRARYOTAG LCTAGCLASSLCTAGCLASSLIBRARYTHISCDEFAULTTAGCLASSCDEFAULTTAGCLASSLIBRARYTAGNAME INHERITTAG0CNameT UVNEWVALTHIS ADDATTRIBUTENAME2CHeightT UVNEWVALTHIS ADDATTRIBUTEHEIGHT1CWidthT UVNEWVALTHIS ADDATTRIBUTEWIDTH'% B-TS%COCoIETag.TagNamebC C,C,  %C&%CO  BCB-%C B-BC T  U OIETAGTHISLIELINKIETAGTAGNAMECNOREFRESHIELINKTAGLISTCOUTFILEOPARENT REFRESHIELINKSAVEFILENAVIGATE OUTERHTMLHTMLTEXTs %CCW7BCBCUTVITEMTNINDEXTHISADDITEM LTAGLOWERCASE  TC-a%COEBTCCC6C BU TCTAGNAMETLTAGDECLARATIONOALLTAGS LCTAGNAMETHISNEWTAGUPDATECHILDALLTAGS TC(TC <%COC lHTMLObjecth  .0%CC @C@    TC C U TOALLTAGS TCTAGNAMETLTAGDECLARATION LCTAGNAMEOITEMOTAGLNCOUNTTHIS NITEMCOUNTITEMTAGNAMELTAGDECLARATIONADDTAGUPDATECHILDALLTAGSz%CB5%Cthis.IE.VisiblebLCO gTB BUTHISIEM0%CCthis.IE.DocumentbO 7BBUTHISIEDOCUMENT UVNEWVALBCOUTHISIE UVNEWVAL UTHIS REFRESHIELINK  % .B-%TCCCC6T%%C oIE.oHostbOB-T%C  C  %T aU TCURLTLSHOWLCURLOIETHISLIELINKIE LNAVIGATEHOSTOHOSTGOHOMENAVIGATEVISIBLEMT%COFBTC Hg O+TCCIDh C6 LC T CTC2B%CCC (BTC BU TVIDLCID ODOCUMENTOTAG LCVARTYPETHISDOCUMENTIDALL BCUTHISGETIETAG UVNEWVALT T%LB(TC<%COC lHTMLObjecth  .TU VNEWVALOIEOITEMLNCOUNTTHISIELRELEASE NITEMCOUNTITEMy %TCCNC86% Q B!BCCC C QUTVCOUNTTNINDEXLNCOUNTTHISADDITEMj $%CO CO 6B-TTTTTTTT  T  T  T  T  TTTTUTOCHILDTOPARENTOPARENT OTOPPARENTLTAGDECLARATION LTAGLOWERCASE LTAGUPPERCASELTAGCRLF LITEMCRLF CINDENTCHAR CINDENTTEXTLINDENT NMAXTAGWIDTH CGENHTMLTABLE CGENHTMLALIAS LAUTOEVALTEXTLTRANSLATESPECIALCHARSIEc%-B-%TCCCC6!%C Ch ~B-(\TC<%COC lHTMLObjecth  .%CCG&oItem.&lcProperty=this.&lcProperty C U TCPROPERTY LCPROPERTYOITEMLNCOUNTTHISLRELEASE NITEMCOUNTITEM INHERITTAGUPDATECHILDTAGS[ TC%COCBBCU TVTAGNAMETNINDEXOTAGTHIS NEWSTYLETAGADDTAG_ TC%COCBBCU TVTAGNAMETNINDEXOTAGTHIS NEWTAGNOENDADDTAG(BCaU TCTAGNAMETHISNEWTAGCSTYLETAGCLASSCSTYLETAGCLASSLIBRARYg TC%COI BT- BU TCTAGNAME TLNOINHERITOTAGTHISNEWTAGLENDTAGB UTHIS LTAGLOWERCASE LTAGUPPERCASEG%  .T-T UVNEWVALTHIS LTAGUPPERCASE LTAGLOWERCASE BUTHIS LTAGUPPERCASEG%  .T-T UVNEWVALTHIS LTAGLOWERCASE LTAGUPPERCASE` %COC 2 B'BCC _C C_UTCITEMTNINDEXTHISADDITEMs T(cTCCT BU LCHTMLTEXTLCHTMLELEMENTTEXTLNCOUNTTHIS NITEMCOUNTGETHTMLELEMENTTEXTITEM T(TCTCCthis.T BU LCHTMLTEXTLCHTMLELEMENTTEXT LCOBJNAMELNCOUNTTHISNOBJECTREFCOUNT AOBJECTREFSGETHTMLELEMENTTEXT#    5(% CC C }B T TT C  ( T C %C C =* .TC= '%CoTHIS.  M&lcMemLine .TCC =TC[%TC(%!TCC([)]*TCCC=6y%Cg. , LCh;Ch Ch ChProperty    .lvOldValue=this.&lcProperty T CTCC \ H( C=(CR) TCCC>\ C= T N^TCg LTC#TClvValuebL 2 Tthis.&lcProperty=lvValue . TU TCPROPERTIES LCPROPERTIESLNATPOSLNATPOS2 LCPROPERTY LCPROPERTY2LCVALUELVVALUE LVOLDVALUE LCMEMLINE LNMEMLINELNMEMLINECOUNT LCVARTYPE LAMEMLINESOTHISTHISLRELEASE,R  TUTHISRELEASEATTRIBUTES RELEASEITEMSTAGNAME %CO0 BTC_ %C  C  %TC C C C #BCUTVITEMTNINDEX LCCOMMENTTHISADDITEMcTC%CG BBCUTCEXPRTNINDEXTCIDLVITEMTHISGETGENHTMLFIELDADDITEMW  %C  bBC  T%CCC  BTCC@'TCCCCC@6 TCWT %C Ta Fy T-%C C 0 O BFQ  G(C' -"TCC+COCN CO6% CbU %C -CC@TCC+CC_6 %1%- #=Q F BUTCEXPRTCIDLCIDLCEXPRLVRESULT LLGENHTMLUSEDLCALIAS LNLASTSELECT LNLASTRECNOTHIS CGENHTMLALIASOPARENTGETGENHTMLFIELD CGENHTMLTABLEID%CC% B% C BhRETURN STRTRAN(STRTRAN(STRTRAN(STRTRAN(tcText, [-],[–]),[<],[<]),[>],[>]),[ ],[ ]) UTCTEXTTHISLTRANSLATESPECIALCHARSU %CCC 2 BBCCUTCTEXTTNINDEXTHISADDITEM VALIDTEXTG%CO4TC BUTHIS OEVALTEXTCEVALTEXTCLASSCEVALTEXTCLASSLIBRARYBCUTCTEXTTHIS OEVALTEXTEVALTEXT5%CC% B BUTCITEM #TCCN06 TCWFR TCGenHTMLxR F BU TCMESSAGETNTYPELNTYPELNRESULT LNLASTSELECTJ"B RunCode.prgUTCCODETLFILE__TLIGNOREERRORSTHISCRUNCODEPROGRAMRUNCODEPRGZTCScript%CBB-BCUTCIDLCCODETHISGETGENHTMLFIELDRUNCODEu(@TCT/%CCC Ch T.TCthis.<%COC lHTMLObjecth  this.&lcAttrib=.NULL. .  Tthis.&lcAttrib=.NULL. TTULCATTRIB TVATTRIBVALUELNCOUNTTHISNATTRIBUTECOUNT AATTRIBUTESRELEASEP*%Cthis.oRecord.GenScriptbC1B-BC-aUTHISRUNCODEORECORD GENSCRIPTs%CCC . B%YBCC]@BCC@U TCFILENAMETHIS LRELATIVEPATHCOUTFILETTTTTTTTT U THISOHOST OTOPPARENTOPARENTORECORDOSOURCEOUSER OEVALTEXT OPROPERTIESOITEMCOLLECTION BCUTHIS GETITEMCOUNTBC UVNEWVALTHIS SETITEMCOUNTTTCC8D%mTB%(TU TNNEWCOUNTLNOLDITEMCOUNTLNNEWITEMCOUNTLNCOUNTTHIS NITEMCOUNTITEMbTC,%CCCXL R T BULNCOUNTTHISITEM[ TC%COCBBCU TVTAGNAMETNINDEXOTAGTHIS NEWXMLTAGADDTAG(BCaU TCTAGNAMETHISNEWTAG CXMLTAGCLASSCXMLTAGCLASSLIBRARY%CN4 BTCCCG@0_R&TCCCC 8G@0_R"TCCC 8@0_RB#UTNCOLORLCREDLCGREENLCBLUE0  %C )B-UTHISCLEARRELEASEOBJECTSTUTHISOHOSTD%C B-    UTHISCLEARRELEASEOBJECTS RELEASEIELINKDELETETEMPOUTFILEJ%C B-T%C UTHIS OTOPPARENT LAUTOSETITEMSSETITEMS%  @BTCC@%runcodeBCC,RunCodeCE%C B-UNERRORCMETHODNLINELCMETHOD__RUNCODEERRORhtmltext_access,htmltext_assignS gethtmltexttgethtmlelementtext viewsourcea savefile getfileO tagtext_access@tagtext_assignf gettagtextadditemaddtag} releaseitems shellexecuteshowt createoutfileGcoutfile_assignCdeletetempoutfile deleteoutfile8 releaseielink createielink; item_access item_assignlgetitemcollection addattribute this_access getattributes]tagname_access%tagname_assign&newtag' name_assign( height_assign ) width_assignf) refreshielink) addtagitemu+gettags,updatechildalltags- ie_access.document_access0/document_assign/lielink_access/lielink_assign/refresh/navigate#0getietag1 ietag_access&3 ietag_assignJ3 ie_assignk3 addcrlfitem4 inherittag45updatechildtags7 addstyletagV9 addtagnoend9 newstyletag: newtagnoend:ltaglowercase_access;ltaglowercase_assign;ltaguppercase_accessI<ltaguppercase_assignq< addevalitem<getitemsm=getobjectrefitems8> setproperties9?clearC addcommentDDaddgenhtmlfield%EgetgenhtmlfieldE validtextHaddtextIoevaltext_access!JevaltextJ translateitemJmsgbox*KruncodeK runscriptLreleaseattributesM genscriptNfilepathOOreleaseobjectsOnitemcount_accessPnitemcount_assignQ setitemcount@Q getitemcount^R addxmltagR newxmltagkShexcolorSreleaseTsethostUDestroy%UInitUError%V13q3AAAAaaA!AA!AA3AAAA!AAAAAAAAA3q1A!AA!A!!QAAAAQAQAQA3qrqAAAAAAA3qqA!aAA!aAqAA3qq1AAq33q3q"qQAA3RAAQqA1AAqA1AQqAaAA1a3qQQqA!qA3QAA1AAA311Aa3qrqA1!A3qq1A!QA3qq!aA3qA!qA3qA!qA3qqAA3qq1QqAA3qrA13rA3qA2A3qqAAAAq13qbA!aA3qq12AAQAq!AqAqA!!qA!AA!!!A1AAAAAQA3qAAQA3qrAA!311QqAAQA3qB!3qb!3qR!3qqA2!aAqA!qA1A13RrAQ32QqA31QAAQAA3!qAQqA3qA3q3Q3q33qAQqA1AAA3q1QqA!!qAqAQ33q3q"AAQAAA3qRA3BqA1111111111111113qqAQqAQAAQaAA3qRQqA3qRQqAQ3q3qQA33qA!33qA!3Aq3A31A3q11qAAQq!AA1qAA11AAAA!!!1AAA3Q3qRAQA13qAQ3AAqAAA!!AAAAA3qRAA3A3A3qB3qRA32QQ3"A#3qqqA3QAAAAAAA3qA3qAqA1333q23qAAAAAA3q"A3qRQqA3q3qRAa!a3qA33qA3qAA3qAAAqA26\ ] g/ ,Zx7Z{ao"7!F)!"]4"#k@$$zH$~%P%-&XQ&&a''n'b(t()z,) *.*++,,55=7>b77P79Z  :S:m w::t:.;{R;4=(U=,>.J>d?8?AFA?BOeBBTBCW7CWCY|CC\CC^CMEtlEJGmGGGGGI%3II7 JMB6M^OZOPs8PP~PcQQ)RTRRR1S\SwSST>TTTU U%WIW]K]G^Ph^^_[_(`&cN`cd1die_eflCCVisibleh CL   B-TC@T%CO! T a TT_D TaT%T form  % TT C ScaleModeh%/G&(Generating HTML: () ...TCdivTdiv_ T H8  checkboxTCinputTTTcheckboxTC CC + comboboxlistbox TCselectTT,T!Clistbox "6C  ("TCoption#T CC $C   commandbuttonTCinputTT%C%{TbuttonTimageT&%TC   commandgroupzTCdivTTC  ('vCC )( editboxTCtextareaTTCC ' C form toolbar TCformTTC T*C,+ labelTCspanTTCC   olecontrolTCobjectTT%CHeighthT--T..*T/CLSid:CC{}#%CtoObject.objectbO" (C0bT CC @%C0 h 9.%lvValue=toObject.object.&lcMember %C O{.%C L$T C TrueFalse6TCparam#T TC _  optiongroup+ TCdivTTC  ('' TCinput#TradioT T TTCC )C  textbox TCinputTT/TCC1 TEXT PASSWORD6T%C2  T22C %Ch 3GCObject "" ()  not supported.4B-%  Ca C5CI%C custom container formset form toolbar _ " (Cb[ :this.GenerateObject(toObject.&laObjects[lnCount],oTag) %  %  T C ScaleMode6U7TOOBJECTTOPARENTOPARENTODIVTAGOTAGOTAG2 LCBASECLASS LCOBJNAMELLPARENTLNCOUNTLLPIXELSLLPIXELSCHANGEDLCMEMBERLVVALUE LAOBJECTS LAMEMBERSTHIS CSOURCEFILEVISIBLE BASECLASSNAMEIDBODY SCALEMODE LMESSAGEBARNEWTAG NEWTAGNOENDTYPECHECKEDVALUEADDITEMCAPTION GENERATESTYLESIZE LISTCOUNT ADDTAGNOENDLISTPICTURESRC BUTTONCOUNTGENERATEOBJECTBUTTONSBGCOLORHEXCOLOR BACKCOLORHEIGHTWIDTHCLASSIDOBJECT PASSWORDCHAR MAXLENGTHRELEASE ADDCOMMENTADDTAGRESETTODEFAULT TC!%CLefth YTCabsolute relative6; left:C_; Top:C_% q%CFontNamehT  %CFontSizeh%T C _pt%C ForeColorhbT C(%CFontBoldh Tbold*%C FontItalich Titalic-%C FontUnderlineh 0T underline%C BackColorhmTCT %CB-TCUTOTAGTOOBJECT TLCONTAINER OSTYLETAGLCSTYLE NEWSTYLETAGPOSITIONLEFTTOP FONT_FAMILYFONTNAME FONT_SIZEFONTSIZECOLORTHISHEXCOLOR FORECOLORFONTBOLD FONT_WEIGHT FONTITALIC FONT_STYLE FONTUNDERLINETEXT_DECORATION BACKGROUND BACKCOLOR STYLETEXTRELEASESTYLEo %C CO .B-TC%_G&( BU LLSUCCESSFULTHISOSOURCEGENERATEOBJECT LMESSAGEBARgenerateobject, generatestylegenerate111qdqA!QAQAAqq1QQQA!aQ1A1QqQA1QqQa1Q11A1!AAAQQAAQAA!AAqQQQA111AQArqAaA!AAAA3A1AAAAAaAAAAqA!3qqAqaA2Ei)Y @@ %gU BCUTHIS GETITEMCOUNTBC UVNEWVALTHIS SETITEMCOUNTBUTHISOHOST NITEMCOUNT BCUTHIS GETITEMCOUNTBCUVNEWVALTHIS SETITEMCOUNTBCU TNNEWCOUNTTHISOHOST SETITEMCOUNTL%C B-%COETUTOHOSTTHISOHOST length_access, length_assignT getitemcount count_access count_assign setitemcount%Initn13q2333q3qB3qqAQA25Y  8r h)@wPROCEDURE htmltext_access RETURN this.GetHTMLText() ENDPROC PROCEDURE htmltext_assign LPARAMETERS vNewVal ERROR 1743 ENDPROC PROCEDURE gethtmltext LOCAL lcHTMLText,lcSubHTMLText,lcTagName,lcTagText,lcIndentText,llTagDeclaration,llSubText IF NOT this.lEnabled RETURN "" ENDIF llTagDeclaration=this.lTagDeclaration lcIndentText=IIF(this.lTagCRLF,this.cIndentText,"") lcTagName=this.TagName lcTagText=this.TagText lcHTMLText=lcIndentText DO CASE CASE llTagDeclaration IF NOT EMPTY(lcTagName) OR NOT EMPTY(lcTagText) DO CASe CASE EMPTY(lcTagName) lcHTMLText=lcHTMLText+lcTagText CASE this.lItemCRLF lcHTMLText=lcHTMLText+ALLTRIM(lcTagName+CR_LF+this.cIndentChar+"{"+lcTagText) OTHERWISE lcHTMLText=lcHTMLText+ALLTRIM(lcTagName+" {"+lcTagText) ENDCASE ENDIF CASE lcTagName=="!--" lcHTMLText=lcHTMLText+"<"+lcTagName+lcTagText CASE NOT EMPTY(lcTagName) OR NOT EMPTY(lcTagText) IF EMPTY(lcTagName) lcHTMLText=lcHTMLText+"<"+lcTagText ELSE IF EMPTY(lcTagText) lcHTMLText=lcHTMLText+"<"+lcTagName ELSE lcHTMLText=lcHTMLText+"<"+lcTagName+" "+lcTagText ENDIF IF this.lEmptyTag AND NOT this.lEndTag lcHTMLText=lcHTMLText+"/" ENDIF ENDIF lcHTMLText=lcHTMLText+">" ENDCASE IF NOT llTagDeclaration AND this.lTagCRLF AND this.lItemCRLF AND NOT EMPTY(lcHTMLText) lcHTMLText=lcHTMLText+CR_LF ENDIF lcSubHTMLText=this.GetObjectRefItems()+this.GetItems() llSubText=(NOT EMPTY(lcSubHTMLText)) IF llSubText IF NOT llTagDeclaration AND NOT EMPTY(lcHTMLText) AND NOT EMPTY(lcSubHTMLText) AND ; this.lTagCRLF AND NOT this.lItemCRLF AND ; LEFT(STRTRAN(lcSubHTMLText,this.cIndentChar,""),1)=="<" lcHTMLText=lcHTMLText+CR_LF ENDIF lcHTMLText=lcHTMLText+lcSubHTMLText ENDIF IF ALLTRIM(STRTRAN(lcHTMLText,this.cIndentChar,""))=="<>" RETURN "" ENDIF IF llTagDeclaration IF EMPTY(lcHTMLText) RETURN lcHTMLText ENDIF IF NOT EMPTY(lcTagName) IF this.lTagCRLF lcHTMLText=lcHTMLText+"}"+CR_LF ELSE lcHTMLText=lcHTMLText+"}" ENDIF ENDIF RETURN lcHTMLText ENDIF IF EMPTY(lcTagName) RETURN lcHTMLText ENDIF IF this.lEndTag IF lcTagName=="!--" lcHTMLText=lcHTMLText+lcIndentText+"-->" ELSE DO CASE CASE NOT llSubText AND NOT this.lFullEndTag AND RIGHT(lcHTMLText,1)==">" lcHTMLText=LEFT(lcHTMLText,LEN(lcHTMLText)-1)+"/>" CASE RIGHT(lcHTMLText,2)==CR_LF lcHTMLText=lcHTMLText+lcIndentText+"" OTHERWISE lcHTMLText=lcHTMLText+"" ENDCASE ENDIF IF this.lTagCRLF AND NOT EMPTY(lcHTMLText) lcHTMLText=lcHTMLText+CR_LF ENDIF ENDIF RETURN lcHTMLText ENDPROC PROCEDURE gethtmlelementtext LPARAMETERS tvItem LOCAL lcHTMLText,lvItem,lcVarType,lnEvalItemLen IF ISNULL(tvItem) RETURN "" ENDIF lvItem=tvItem lcVarType=VARTYPE(lvItem) lnEvalItemLen=LEN(EVAL_ITEM) IF lcVarType=="C" AND LEFT(lvItem,lnEvalItemLen)==EVAL_ITEM lvItem=EVALUATE(SUBSTR(lvItem,lnEvalItemLen+1)) lcVarType=VARTYPE(lvItem) IF lcVarType=="O" RETURN this.GetHTMLElementText(lvItem) ENDIF ENDIF IF lcVarType=="X" RETURN "" ENDIF IF lcVarType=="O" IF NOT PEMSTATUS(lvItem,"lHTMLObject",5) IF PEMSTATUS(lvItem,"HTMLText",5) lcHTMLText=lvItem.HTMLText IF VARTYPE(lcHTMLText)=="C" RETURN lcHTMLText ENDIF ENDIF RETURN "" ENDIF RETURN lvItem.HTMLText ENDIF lcHTMLText=TRANSFORM(lvItem) IF this.lAutoEvalText AND VARTYPE(lcHTMLText)=="C" AND ; "{{"$lcHTMLText AND "}}"$lcHTMLText lcHTMLText=this.EvalText(lcHTMLText) ENDIF lcHTMLText=this.TranslateItem(lcHTMLText) IF this.lItemCRLF lcHTMLText=lcHTMLText+CR_LF ENDIF IF this.lAutoEvalText AND VARTYPE(lcHTMLText)=="C" AND ; "{{"$lcHTMLText AND "}}"$lcHTMLText lcHTMLText=this.EvalText(lcHTMLText) ENDIF RETURN lcHTMLText ENDPROC PROCEDURE viewsource LPARAMETERS tlNoWait,tlNoEdit LOCAL lcOutFile lcOutFile=this.CreateOutFile(this.cOutFile) IF EMPTY(lcOutFile) RETURN .F. ENDIF IF tlNoWait IF tlNoEdit MODIFY FILE (lcOutFile) NOEDIT NOWAIT IN SCREEN ELSE MODIFY FILE (lcOutFile) NOWAIT IN SCREEN ENDIF RETURN ENDIF IF tlNoEdit MODIFY FILE (lcOutFile) NOEDIT IN SCREEN ELSE MODIFY FILE (lcOutFile) IN SCREEN ENDIF IF lcOutFile==this.cTempOutFile this.DeleteTempOutFile this.cOutFile="" ENDIF ENDPROC PROCEDURE savefile LPARAMETERS tcOutFile LOCAL lcOutFile,lcHTMLText lcOutFile=ALLTRIM(IIF(VARTYPE(tcOutFile)=="C",tcOutFile,this.cOutFile)) IF EMPTY(lcOutFile) lcOutFile=this.GetFile() IF EMPTY(lcOutFile) RETURN .F. ENDIF IF EMPTY(JUSTEXT(lcOutFile)) lcOutFile=FORCEEXT(lcOutFile,this.cFileExt) ENDIF this.cOutFile=lcOutFile ENDIF IF EMPTY(JUSTEXT(lcOutFile)) lcOutFile=FORCEEXT(lcOutFile,this.cFileExt) this.cOutFile=lcOutFile ENDIF lcHTMLText=this.HTMLText IF EMPTY(lcHTMLText) RETURN .F. ENDIF RETURN (STRTOFILE(lcHTMLText,lcOutFile)>0) ENDPROC PROCEDURE getfile LPARAMETERS tcFileExt LOCAL lcFileExt IF EMPTY(tcFileExt) OR VARTYPE(tcFileExt)#"C" lcFileExt=this.cGetFileExt IF NOT EMPTY(this.cLastGetFileExt) lcFileExt=this.cLastGetFileExt+STRTRAN(";"+lcFileExt,";"+this.cLastGetFileExt,"") ENDIF ELSE lcFileExt=LOWER(ALLTRIM(tcFileExt)) ENDIF RETURN LOWER(PUTFILE(M_SAVE_LOC,"",lcFileExt)) ENDPROC PROCEDURE tagtext_access RETURN this.GetTagText() ENDPROC PROCEDURE tagtext_assign LPARAMETERS vNewVal ERROR 1743 ENDPROC PROCEDURE gettagtext LOCAL lcTagText,lcTagText2,lcAttributes,lcTagName,lnTagWidthOffset lcAttributes=ALLTRIM(this.cAttributes) lcTagName=ALLTRIM(this.TagName+" ") lnTagWidthOffset=LEN(lcAttributes)+LEN(lcTagName) lcTagText=this.GetAttributes() IF EMPTY(lcAttributes) RETURN lcTagText ENDIF lcTagText2=ALLTRIM(lcTagText+" "+lcAttributes) IF this.nMaxTagWidth=0 OR LEN(lcTagText2)<=(this.nMaxTagWidth-lnTagWidthOffset) RETURN lcTagText2 ENDIF RETURN ALLTRIM(lcTagText+CR_LF+" "+lcAttributes) ENDPROC PROCEDURE additem LPARAMETERS tvItem,tnIndex LOCAL lcItem,lnIndex,oItem,lnItem,lcIndentText,lnCount LOCAL laItem[1] IF INLIST(VARTYPE(tvItem),"X","L") OR (VARTYPE(tvItem)=="C" AND tvItem=="") RETURN 0 ENDIF lnCount=this.nItemCount+1 lnIndex=IIF(VARTYPE(tnIndex)=="N",INT(tnIndex),lnCount) lnIndex=MAX(MIN(lnIndex,lnCount),1) DIMENSION this.Item[lnCount] IF lnIndex0 IF EMPTY(this.cOutFile) IF VARTYPE(this.oParent)=="O" AND this#this.oParent RETURN this.oParent.RefreshIELink() ENDIF RETURN .F. ENDIF IF NOT this.SaveFile() RETURN .F. ENDIF RETURN this.Navigate(this.cOutFile) ENDIF oIETag.OuterHTML=this.HTMLText ENDPROC PROCEDURE addtagitem LPARAMETERS tvItem,tnIndex IF VARTYPE(tvItem)=="C" RETURN this.AddItem("<"+IIF(this.lTagLowerCase,LOWER(ALLTRIM(tvItem)), ; UPPER(ALLTRIM(tvItem)))+">",tnIndex) ENDIF RETURN this.AddItem(tvItem,tnIndex) ENDPROC PROCEDURE gettags LPARAMETERS tcTagName,tlTagDeclaration LOCAL oAllTags,lcTagName oAllTags=this.NewTag(.F.,.T.) IF VARTYPE(oAllTags)#"O" RETURN .NULL. ENDIF lcTagName=IIF(EMPTY(tcTagName),"",ALLTRIM(tcTagName)) this.UpdateChildAllTags(oAllTags,lcTagName,tlTagDeclaration) RETURN oAllTags ENDPROC PROCEDURE updatechildalltags LPARAMETERS toAllTags,tcTagName,tlTagDeclaration LOCAL lcTagName,oItem,oTag,lnCount lcTagName=ALLTRIM(tcTagName) FOR lnCount = 1 TO this.nItemCount oItem=this.Item[lnCount] IF VARTYPE(oItem)#"O" OR NOT PEMSTATUS(oItem,"lHTMLObject",5) OR oItem=this LOOP ENDIF IF (EMPTY(lcTagName) OR LOWER(oItem.TagName)==LOWER(lcTagName)) AND ; oItem.lTagDeclaration=tlTagDeclaration oTag=toAllTags.AddTag(oItem) ENDIF oItem.UpdateChildAllTags(toAllTags,lcTagName,tlTagDeclaration) ENDFOR ENDPROC PROCEDURE ie_access IF ISNULL(this.IE) RETURN .NULL. ENDIF IF TYPE("this.IE.Visible")#"L" OR VARTYPE(this.IE)#"O" this.IE=.NULL. RETURN .NULL. ENDIF RETURN this.IE ENDPROC PROCEDURE document_access IF ISNULL(this.IE) OR TYPE("this.IE.Document")#"O" RETURN .NULL. ENDIF RETURN this.IE.Document ENDPROC PROCEDURE document_assign LPARAMETERS vNewVal ERROR 1743 ENDPROC PROCEDURE lielink_access RETURN (VARTYPE(this.IE)=="O") ENDPROC PROCEDURE lielink_assign LPARAMETERS vNewVal ERROR 1743 ENDPROC PROCEDURE refresh this.RefreshIELink ENDPROC PROCEDURE navigate LPARAMETERS tcURL,tlShow LOCAL lcURL,oIE IF NOT this.lIELink RETURN .F. ENDIF lcURL=IIF(VARTYPE(tcURL)=="C",ALLTRIM(tcURL),"") oIE=this.IE IF this.lNavigateHost IF TYPE("oIE.oHost")#"O" RETURN .F. ENDIF oIE=this.IE.oHost ENDIF IF EMPTY(lcURL) oIE.GoHome ELSE oIE.Navigate(lcURL) ENDIF IF tlShow oIE.Visible=.T. ENDIF ENDPROC PROCEDURE getietag LPARAMETERS tvID LOCAL lcID,oDocument,oTag,lcVarType oDocument=this.Document IF VARTYPE(oDocument)#"O" RETURN .NULL. ENDIF lcVarType=VARTYPE(tvID) DO CASE CASE lcVarType=="O" lcID=IIF(PEMSTATUS(tvID,"ID",5),ALLTRIM(tvID.ID),"") CASE lcVarType=="L" OR EMPTY(tvID) lcID=this.ID CASE lcVarType=="C" lcID=ALLTRIM(tvID) OTHERWISE RETURN .NULL. ENDCASE IF VARTYPE(lcID)#"C" OR EMPTY(lcID) RETURN .NULL. ENDIF oTag=oDocument.All(lcID) RETURN oTag ENDPROC PROCEDURE ietag_access RETURN this.GetIETag() ENDPROC PROCEDURE ietag_assign LPARAMETERS vNewVal ERROR 1743 ENDPROC PROCEDURE ie_assign LPARAMETERS vNewVal LOCAL oIE,oItem,lnCount this.IE=m.vNewVal oIE=this.IE IF this.lRelease RETURN ENDIF FOR lnCount = 1 TO this.nItemCount oItem=this.Item[lnCount] IF VARTYPE(oItem)#"O" OR NOT PEMSTATUS(oItem,"lHTMLObject",5) OR oItem=this LOOP ENDIF oItem.IE=oIE ENDFOR ENDPROC PROCEDURE addcrlfitem LPARAMETERS tvCount,tnIndex LOCAL lnCount lnCount=IIF(VARTYPE(tvCount)=="N",INT(tvCount),1) IF lnCount<1 RETURN 0 ENDIF RETURN this.AddItem(REPLICATE(CR_LF,lnCount),tnIndex) ENDPROC PROCEDURE inherittag LPARAMETERS toChild,toParent IF VARTYPE(toChild)#"O" OR VARTYPE(toParent)#"O" RETURN .F. ENDIF toChild.oParent=toParent toChild.oTopParent=toParent.oTopParent toChild.lTagDeclaration=toParent.lTagDeclaration toChild.lTagLowerCase=toParent.lTagLowerCase toChild.lTagUpperCase=toParent.lTagUpperCase toChild.lTagCRLF=toParent.lTagCRLF toChild.lItemCRLF=toParent.lItemCRLF toChild.cIndentChar=toParent.cIndentChar toChild.cIndentText=toParent.cIndentText toChild.lIndent=toParent.lIndent toChild.nMaxTagWidth=toParent.nMaxTagWidth toChild.cGenHTMLTable=toParent.cGenHTMLTable toChild.cGenHTMLAlias=toParent.cGenHTMLAlias toChild.lAutoEvalText=toParent.lAutoEvalText toChild.lTranslateSpecialChars=toParent.lTranslateSpecialChars toChild.IE=toParent.IE ENDPROC PROCEDURE updatechildtags LPARAMETERS tcProperty LOCAL lcProperty,oItem,lnCount IF this.lRelease RETURN .F. ENDIF lcProperty=IIF(VARTYPE(tcProperty)=="C",ALLTRIM(tcProperty),"") IF NOT EMPTY(lcProperty) AND NOT PEMSTATUS(this,lcProperty,5) RETURN .F. ENDIF FOR lnCount = 1 TO this.nItemCount oItem=this.Item[lnCount] IF VARTYPE(oItem)#"O" OR NOT PEMSTATUS(oItem,"lHTMLObject",5) OR oItem=this LOOP ENDIF IF EMPTY(lcProperty) this.InheritTag(oItem,this) ELSE oItem.&lcProperty=this.&lcProperty ENDIF oItem.UpdateChildTags(lcProperty) ENDFOR ENDPROC PROCEDURE addstyletag LPARAMETERS tvTagName,tnIndex LOCAL oTag oTag=this.NewStyleTag(tvTagName) IF VARTYPE(oTag)#"O" RETURN .NULL. ENDIF RETURN this.AddTag(oTag) ENDPROC PROCEDURE addtagnoend LPARAMETERS tvTagName,tnIndex LOCAL oTag oTag=this.NewTagNoEnd(tvTagName) IF VARTYPE(oTag)#"O" RETURN .NULL. ENDIF RETURN this.AddTag(oTag,tnIndex) ENDPROC PROCEDURE newstyletag LPARAMETERS tcTagName RETURN this.NewTag(tcTagName,.T.,this.cStyleTagClass,this.cStyleTagClassLibrary) ENDPROC PROCEDURE newtagnoend LPARAMETERS tcTagName,tlNoInherit LOCAL oTag oTag=this.NewTag(tcTagName,tlNoInherit) IF VARTYPE(oTag)#"O" RETURN oTag ENDIF oTag.lEndTag=.F. RETURN oTag ENDPROC PROCEDURE ltaglowercase_access RETURN (this.lTagLowerCase AND NOT this.lTagUpperCase) ENDPROC PROCEDURE ltaglowercase_assign LPARAMETERS vNewVal IF m.vNewVal AND this.lTagUpperCase this.lTagUpperCase=.F. ENDIF this.lTagLowerCase=m.vNewVal ENDPROC PROCEDURE ltaguppercase_access RETURN this.lTagUpperCase ENDPROC PROCEDURE ltaguppercase_assign LPARAMETERS vNewVal IF m.vNewVal AND this.lTagLowerCase this.lTagLowerCase=.F. ENDIF this.lTagUpperCase=m.vNewVal ENDPROC PROCEDURE addevalitem LPARAMETERS tcItem,tnIndex IF VARTYPE(tcItem)=="O" OR EMPTY(tcItem) RETURN 0 ENDIF RETURN this.AddItem(EVAL_ITEM+TRANSFORM(tcItem),tnIndex) ENDPROC PROCEDURE getitems LOCAL lcHTMLText,lcHTMLElementText,lnCount lcHTMLText="" FOR lnCount = 1 TO this.nItemCount lcHTMLElementText=this.GetHTMLElementText(this.Item[lnCount]) lcHTMLText=lcHTMLText+lcHTMLElementText ENDFOR RETURN lcHTMLText ENDPROC PROCEDURE getobjectrefitems LOCAL lcHTMLText,lcHTMLElementText,lcObjName,lnCount lcHTMLText="" FOR lnCount = 1 TO this.nObjectRefCount lcObjName=this.aObjectRefs[lnCount,1] lcHTMLElementText=this.GetHTMLElementText(EVALUATE("this."+lcObjName)) lcHTMLText=lcHTMLText+lcHTMLElementText ENDFOR RETURN lcHTMLText ENDPROC PROCEDURE setproperties LPARAMETERS tcProperties LOCAL lcProperties,lnAtPos,lnAtPos2,lcProperty,lcProperty2,lcValue,lvValue,lvOldValue LOCAL lcMemLine,lnMemLine,lnMemLineCount,lcVarType LOCAL laMemLines[1] PRIVATE oTHIS IF this.lRelease OR VARTYPE(tcProperties)#"C" OR EMPTY(tcProperties) RETURN ENDIF lcProperties=tcProperties oTHIS=this lnMemLineCount=ALINES(laMemLines,lcProperties) FOR lnMemLine = 1 TO lnMemLineCount lcMemLine=laMemLines[lnMemLine] IF EMPTY(lcMemLine) OR LEFT(lcMemLine,1)=="*" LOOP ENDIF lnAtPos=AT("=",lcMemLine) IF lnAtPos=0 OR ATC("oTHIS.",lcMemLine)>0 &lcMemLine LOOP ENDIF lcProperty=ALLTRIM(LEFT(lcMemLine,lnAtPos-1)) lnAtPos2=AT("[",lcProperty) IF lnAtPos2=0 lnAtPos2=AT("(",lcProperty) IF lnAtPos2>0 lcProperty=STRTRAN(STRTRAN(lcProperty,"(","["),")","]") ENDIF ENDIF lcProperty2=IIF(lnAtPos2=0,lcProperty,ALLTRIM(LEFT(lcProperty,lnAtPos2-1))) IF EMPTY(lcProperty2) OR (NOT "."$lcProperty2 AND NOT ","$lcProperty2 AND ; (PEMSTATUS(this,lcProperty2,5) AND (PEMSTATUS(this,lcProperty2,1) OR ; PEMSTATUS(this,lcProperty2,2) OR ; NOT PEMSTATUS(this,lcProperty2,3)=="Property"))) LOOP ENDIF lvOldValue=this.&lcProperty lcVarType=VARTYPE(lvOldValue) lcValue=ALLTRIM(SUBSTR(lcMemLine,lnAtPos+1)) DO CASE CASE LEFT(lcValue,1)=="(" AND RIGHT(lcValue,1)==")" lvValue=EVALUATE(SUBSTR(lcValue,2,LEN(lcValue)-2)) CASE lcVarType=="C" lvValue=lcValue CASE lcVarType=="N" lvValue=VAL(lcValue) CASE lcVarType=="L" lvValue=EVALUATE(lcValue) lvValue=(TYPE("lvValue")=="L" AND lvValue) OTHERWISE lvValue=lcValue ENDCASE this.&lcProperty=lvValue LOOP ENDFOR oTHIS=.NULL. ENDPROC PROCEDURE clear WAIT CLEAR this.ReleaseAttributes this.ReleaseItems this.TagName="" ENDPROC PROCEDURE addcomment LPARAMETERS tvItem,tnIndex LOCAL lcComment IF VARTYPE(tvItem)=="O" RETURN 0 ENDIF lcComment=TRANSFORM(tvItem) IF CR$lcComment OR LF$lcComment lcComment=CR_LF+lcComment+CR_LF ENDIF RETURN this.AddItem("",tnIndex) ENDPROC PROCEDURE addgenhtmlfield LPARAMETERS tcExpr,tnIndex,tcID LOCAL lvItem lvItem=this.GetGenHTMLField(tcExpr,tcID) IF EMPTY(lvItem) RETURN 0 ENDIF RETURN this.AddItem(lvItem,tnIndex) ENDPROC PROCEDURE getgenhtmlfield LPARAMETERS tcExpr,tcID LOCAL lcID,lcExpr,lvResult,llGenHTMLUsed,lcAlias,lnLastSelect,lnLastRecNo IF EMPTY(this.cGenHTMLAlias) AND this#this.oParent RETURN this.oParent.GetGenHTMLField(tcExpr,tcID) ENDIF lvResult=.NULL. IF VARTYPE(tcExpr)#"C" OR EMPTY(tcExpr) RETURN lvResult ENDIF lcExpr=LOWER(ALLTRIM(tcExpr)) lcID=IIF(VARTYPE(tcID)#"C","",LOWER(ALLTRIM(tcID))) lnLastSelect=SELECT() lcAlias=this.cGenHTMLAlias IF USED(lcAlias) llGenHTMLUsed=.T. SELECT (lcAlias) ELSE llGenHTMLUsed=.F. IF EMPTY(this.cGenHTMLTable) OR NOT FILE(this.cGenHTMLTable) RETURN lvResult ENDIF SELECT 0 USE (this.cGenHTMLTable) AGAIN SHARED SET FILTER TO NOT DELETED() LOCATE ENDIF lnLastRecNo=IIF(EOF() OR RECNO()>RECCOUNT(),0,RECNO()) IF lnLastRecNo>0 AND TYPE(tcExpr)#"U" IF NOT EMPTY(lcID) LOCATE FOR LOWER(ALLTRIM(ID))==lcID ENDIF lvResult=IIF(EOF(),"",TRANSFORM(EVALUATE(lcExpr))) ENDIF IF llGenHTMLUsed IF lnLastRecNo>0 GO lnLastRecNo ENDIF ELSE USE ENDIF SELECT (lnLastSelect) RETURN lvResult ENDPROC PROCEDURE validtext LPARAMETERS tcText IF VARTYPE(tcText)#"C" RETURN "" ENDIF IF NOT this.lTranslateSpecialChars RETURN tcText ENDIF RETURN STRTRAN(STRTRAN(STRTRAN(STRTRAN(tcText, ; [-],[–]),[<],[<]),[>],[>]),[ ],[ ]) ENDPROC PROCEDURE addtext LPARAMETERS tcText,tnIndex IF VARTYPE(tcText)#"C" OR EMPTY(tcText) RETURN 0 ENDIF RETURN this.AddItem(this.ValidText(tcText),tnIndex) ENDPROC PROCEDURE oevaltext_access IF VARTYPE(this.oEvalText)#"O" this.oEvalText=NEWOBJECT(this.cEvalTextClass,this.cEvalTextClassLibrary) ENDIF RETURN this.oEvalText ENDPROC PROCEDURE evaltext LPARAMETERS tcText RETURN this.oEvalText.EvalText(tcText) ENDPROC PROCEDURE translateitem LPARAMETERS tcItem IF VARTYPE(tcItem)#"C" RETURN "" ENDIF RETURN tcItem ENDPROC PROCEDURE msgbox LPARAMETERS tcMessage,tnType LOCAL lnType,lnResult,lnLastSelect lnType=IIF(VARTYPE(tnType)=="N",tnType,48) lnLastSelect=SELECT() SELECT 0 WAIT CLEAR lnResult=MESSAGEBOX(tcMessage,lnType,M_GENHTML_LOC) WAIT CLEAR SELECT (lnLastSelect) RETURN lnResult ENDPROC PROCEDURE runcode LPARAMETERS tcCode,tlFile,__tlIgnoreErrors DO (this.cRunCodeProgram) WITH (tcCode),(tlFile),(__tlIgnoreErrors) RETURN *-- Dummy lines for adding files to project. DO RunCode.prg ENDPROC PROCEDURE runscript LPARAMETERS tcID LOCAL lcCode lcCode=this.GetGenHTMLField("Script",tcID) IF EMPTY(lcCode) RETURN .F. ENDIF RETURN this.RunCode(lcCode) ENDPROC PROCEDURE releaseattributes LOCAL lcAttrib,tvAttribValue,lnCount FOR lnCount = 1 TO this.nAttributeCount lcAttrib=this.aAttributes[lnCount] this.aAttributes[lnCount]=.NULL. IF VARTYPE(lcAttrib)#"C" OR EMPTY(lcAttrib) OR NOT PEMSTATUS(this,lcAttrib,4) this.aAttributes[lnCount]=.NULL. LOOP ENDIF tvAttribValue=EVALUATE("this."+lcAttrib) IF VARTYPE(tvAttribValue)#"O" OR NOT PEMSTATUS(tvAttribValue,"lHTMLObject",5) OR ; tvAttribValue=this this.&lcAttrib=.NULL. LOOP ENDIF tvAttribValue.Release tvAttribValue=.NULL. this.&lcAttrib=.NULL. ENDFOR this.nAttributeCount=0 DIMENSION this.aAttributes[1] this.aAttributes=.NULL. ENDPROC PROCEDURE genscript IF TYPE("this.oRecord.GenScript")#"C" RETURN .F. ENDIF RETURN this.RunCode(this.oRecord.GenScript,.F.,.T.) ENDPROC PROCEDURE filepath LPARAMETERS tcFileName IF VARTYPE(tcFileName)#"C" OR EMPTY(tcFileName) RETURN "" ENDIF IF this.lRelativePath RETURN LOWER(SYS(2014,tcFileName,this.cOutFile)) ENDIF RETURN LOWER(FULLPATH(tcFileName,this.cOutFile)) ENDPROC PROCEDURE releaseobjects this.oHost=.NULL. this.oTopParent=.NULL. this.oParent=.NULL. this.oRecord=.NULL. this.oSource=.NULL. this.oUser=.NULL. this.oEvalText=.NULL. this.oProperties=.NULL. this.oItemCollection=.NULL. ENDPROC PROCEDURE nitemcount_access RETURN this.GetItemCount() ENDPROC PROCEDURE nitemcount_assign LPARAMETERS vNewVal RETURN this.SetItemCount(m.vNewVal) ENDPROC PROCEDURE setitemcount LPARAMETERS tnNewCount LOCAL lnOldItemCount,lnNewItemCount,lnCount lnOldItemCount=this.nItemCount lnNewItemCount=MAX(INT(tnNewCount),0) IF lnNewItemCount=0 DIMENSION this.Item[1] this.Item=.NULL. RETURN ENDIF DIMENSION this.Item[lnNewItemCount] IF lnNewItemCount>lnOldItemCount FOR lnCount = (lnOldItemCount+1) TO lnNewItemCount this.Item[lnCount]=.NULL. ENDFOR ENDIF ENDPROC PROCEDURE getitemcount LOCAL lnCount lnCount=ALEN(this.Item) IF lnCount=1 AND INLIST(VARTYPE(this.Item[1]),"X","L") lnCount=0 ENDIF RETURN lnCount ENDPROC PROCEDURE addxmltag LPARAMETERS tvTagName,tnIndex LOCAL oTag oTag=this.NewXMLTag(tvTagName) IF VARTYPE(oTag)#"O" RETURN .NULL. ENDIF RETURN this.AddTag(oTag) ENDPROC PROCEDURE newxmltag LPARAMETERS tcTagName RETURN this.NewTag(tcTagName,.T.,this.cXMLTagClass,this.cXMLTagClassLibrary) ENDPROC PROCEDURE hexcolor LPARAMETERS tnColor LOCAL lcRed,lcGreen,lcBlue IF VARTYPE(tnColor)#"N" RETURN "" ENDIF lcRed=RIGHT(TRANSFORM(MOD(tnColor,256),"@0"),2) lcGreen=RIGHT(TRANSFORM(MOD(INT(tnColor/256),256),"@0"),2) lcBlue=RIGHT(TRANSFORM(INT(tnColor/65536),"@0"),2) RETURN "#"+lcRed+lcGreen+lcBlue ENDPROC PROCEDURE release this.Clear this.ReleaseObjects IF NOT DODEFAULT() RETURN .F. ENDIF ENDPROC PROCEDURE sethost this.oHost=this ENDPROC PROCEDURE Destroy IF NOT DODEFAULT() RETURN .F. ENDIF this.Clear this.ReleaseObjects this.ReleaseIELink this.DeleteTempOutFile ENDPROC PROCEDURE Init IF NOT DODEFAULT() RETURN .F. ENDIF this.oTopParent=this IF this.lAutoSetItems this.SetItems ENDIF ENDPROC PROCEDURE Error LPARAMETERS nError, cMethod, nLine LOCAL lcMethod EXTERNAL ARRAY __RunCodeError IF nError=1426 OR nError=1945 RETURN ENDIF lcMethod=LOWER(ALLTRIM(cMethod)) IF lcMethod=="runcode" RETURN __RunCodeError(ERROR(),0,"RunCode","",MESSAGE()) ENDIF IF NOT DODEFAULT(nError, cMethod, nLine) RETURN .F. ENDIF ENDPROC 0c 0HTYPEC IDC LINKSM%TEXTM)DESCM-CLASSNAMEM1CLASSLIBM5MODULEM9PICTUREM=PROPERTIESMAHTMLMESTYLEMISCRIPTMMPRESCRIPTMQGENSCRIPTMUPOSTSCRIPTMYHEADSTARTM]HEADENDMaBODYSTARTMeBODYENDMiUPDATEDTmCOMMENTMuUSERMyVERSIONM}SAVEL DEFAULT VFPDefault   LAYOUT ListTable  LAYOUT DetailTable  LAYOUT TabCtlList  !()*+, LAYOUT TabCtlDetail -./6789: LAYOUT TabCtlHierarchical ;<4FGHIJ OPTIONS ListOptions `a OPTIONS TabListOptions bc OPTIONS TabDetailOptions de OPTIONS TabHierOptions fg OPTIONS StaticOptions hi GLOBALSTYLE GlobalTableStyle STYLE TropicalParadiseStyle jklm STYLE DesertCalmStyle opqr STYLE Graffiti stuw STYLE TitleHeader xyP} STYLE LedgerList STYLE WB00486 STYLE WB00516 STYLE WB00531 STYLE WB00546 STYLE WB00673 STYLE WB00703 STYLE WB00720 STYLE WB00742 STYLE WB00756 STYLE WB00760 STYLE WB00780 STYLE WB00785 STYLE WB00819 STYLE WB01231 STYLE WB01276 STYLE WB01306 STYLE WB01308 STYLE WB01741 STYLE WB01844 STYLE WB01845 STYLE WB01846 |z STYLE WB01847 YXDB SCRIPT SortTableColumn F SCRIPT NavButtonsCode  SCRIPT NavButtons Z SCRIPT SetBodyImage K SCRIPT DataPaging  SCRIPT FrameScript  SCRIPT FilterScript = SCRIPT PageButtons  WIZARD WIZARD  |@ listview.bmp97ʌ422ʌ 95ʌ5921ʌ3_oHTML.Body.bgColor="silver" 1.2aGlobalTableStyleStatic List View This style displays data formatted in a tabular layout with field column headers. This style is recommended for read-only/display type web pages involving small to moderate amounts of data. The output generated is static so it can be used with most web browsers.  listview.bmpOptions=ListOptions4_oHTML.nTableStyle=0 _oHTML.Body.bgColor="silver" GlobalTableStyleStatic Detail ViewThis style displays data formatted in a columnar layout with each record separated by a line. This style is recommended for read-only/display type web pages involving small to moderate amounts of data. The output generated is static so it can be used with most web browsers. generated is static so it can bedetailview.bmpOptions=StaticOptions4_oHTML.nTableStyle=1 _oHTML.Body.bgColor="silver" GlobalTableStyle Tabular ListThis style displays data formatted in a tabular layout with column headers that provide sorting capabilities. Buttons are also provided to navigate through pages of data. This style is recommended for read-only/display type web pages involving small to moderate amounts of data. It uses the Tabular Data Control which requires Microsoft Internet Explorer 4.0 or higher. Memo fields are not supported with this layout._TabDataControl3(IIF(VERSION(2)=0,"",HOME()+"FFC\")+"_HTMLSty.vcx") tablist.bmpOptions=TabListOptions6_oHTML.nTableStyle=100 _oHTML.Body.bgColor="silver" GlobalTableStyle Tabular DetailThis style displays data formatted in a columnar layout. Navigation buttons are also provided to navigate through individual records. This style is recommended for read-only/display type web pages involving small to moderate amounts of data. It uses the Tabular Data Control which requires Microsoft Internet Explorer 4.0 or higher. Memo fields are not supported with this layout._TabDataControl3(IIF(VERSION(2)=0,"",HOME()+"FFC\")+"_HTMLSty.vcx") tabdetail.bmpOptions=TabDetailOptions6_oHTML.nTableStyle=101 _oHTML.Body.bgColor="silver" GlobalTableStyleTabular Hierarchical 9cImageID = "WB01847_" _oHTML.RunScript("SetBodyImage") :cImageID2 = "WB01847_" _oHTML.RunScript("SetBodyImage") _TabDataControl3(IIF(VERSION(2)=0,"",HOME()+"FFC\")+"_HTMLSty.vcx") tabhier.bmp Frames=2 Options=TabHierOptions6_oHTML.nTableStyle=102 _oHTML.Body.bgColor="silver" IF TYPE("m.cImageID2")="C" AND !EMPTY(m.cImageID2) AND TYPE("oEngine.BaseClass")="C" AND oEngine.lCopyImages AND oEngine.nWizAction # 9 cImageFile = HOME() + "WIZARDS\GRAPHICS\" + m.cImageID2 + ".GIF" cNewImageFile = ADDBS(JUSTPATH(_oHTML.cOutFile))+m.cImageID2 + ".GIF" IF FILE(m.cImageFile) AND !FILE(m.cNewImageFile ) COPY FILE (m.cImageFile) TO (m.cNewImageFile) PRIVATE cImageID cImageID = m.cImageID2 ENDIF ENDIF IF TYPE("m.cImageID") = "C" AND !EMPTY(m.cImageID) PRIVATE cImageFile cImageFile = m.cImageID + ".GIF" * Check if file in same location as HTM outfile IF !FILE(ADDBS(JUSTPATH(_oHTML.cOutFile)) + m.cImageFile) cImageFile = HOME() + "WIZARDS\GRAPHICS\" + m.cImageFile ENDIF _oHTML.Body.background = cImageFile ENDIF $Adds a background image to web page.Squiggle backgroundF



 _ListOptions3(IIF(VERSION(2)=0,"",HOME()+"FFC\")+"_HTMLSty.vcx")_TabListOptions3(IIF(VERSION(2)=0,"",HOME()+"FFC\")+"_HTMLSty.vcx")_TabDetailOptions3(IIF(VERSION(2)=0,"",HOME()+"FFC\")+"_HTMLSty.vcx")_TabHierOptions3(IIF(VERSION(2)=0,"",HOME()+"FFC\")+"_HTMLSty.vcx")_StaticOptions3(IIF(VERSION(2)=0,"",HOME()+"FFC\")+"_HTMLSty.vcx")Tropical Paradise .This visual style gives a look with sea tones._oHTML.Body.bgColor="cyan" I_oHTML.oGenTag.Style="color: blue; font-size: 12pt; font-family: Verdana"Desert Calm 1This visual style gives a look with desert tones.8table {color: red; font-size: 12pt; font-family: Tahoma}_oHTML.Body.bgColor="pink"Graffiti*Get out the spray paint and have some fun.@table {color: blue; font-size: 14pt; font-family: Comic Sans MS}6_oHTML.Body.background=HOME()+"wizards\wizstone.bmp"  Data Headerradise -Add a caption containing name of data source.9cImageID = "WB01846_" _oHTML.RunScript("SetBodyImage") $Adds a background image to web page.lcTitle = _oHTML.Head.Title.Item IF TYPE("lcTitle")="C" AND !EMPTY(ALLTRIM(lcTitle)) loTitleHead = _oHTML.Body.AddTag("H2",2) loTitleHead.AddItem(ALLTRIM(lcTitle)) ? loTitleHead.nIndex ENDIF  Ledger List&Add a ledger style look to your table.y_oHTML.cTHAttributes=[bgcolor="gray"] _oHTML.cTDAttributes=[bgcolor="{{IIF(MOD(INT((RECNO()-1)/1),2)=0,'','green')}}"] Marble background$Adds a background image to web page.;cImageID22 = "WB00486_" _oHTML.RunScript("SetBodyImage") 9cImageID = "WB00486_" _oHTML.RunScript("SetBodyImage") Sandstone background$Adds a background image to web page.:cImageID2 = "WB00516_" _oHTML.RunScript("SetBodyImage") 9cImageID = "WB00516_" _oHTML.RunScript("SetBodyImage") Rock background$Adds a background image to web page.:cImageID2 = "WB00531_" _oHTML.RunScript("SetBodyImage") 9cImageID = "WB00531_" _oHTML.RunScript("SetBodyImage") Prism background$Adds a background image to web page.:cImageID2 = "WB00546_" _oHTML.RunScript("SetBodyImage") 9cImageID = "WB00546_" _oHTML.RunScript("SetBodyImage") Music background$Adds a background image to web page.:cImageID2 = "WB00673_" _oHTML.RunScript("SetBodyImage") 9cImageID = "WB00673_" _oHTML.RunScript("SetBodyImage") Leaf background$Adds a background image to web page.:cImageID2 = "WB00703_" _oHTML.RunScript("SetBodyImage") 9cImageID = "WB00703_" _oHTML.RunScript("SetBodyImage") Fossil background$Adds a background image to web page.:cImageID2 = "WB00720_" _oHTML.RunScript("SetBodyImage") 9cImageID = "WB00720_" _oHTML.RunScript("SetBodyImage") Flower background$Adds a background image to web page.:cImageID2 = "WB00742_" _oHTML.RunScript("SetBodyImage") 9cImageID = "WB00742_" _oHTML.RunScript("SetBodyImage") Tulip background$Adds a background image to web page.:cImageID2 = "WB00756_" _oHTML.RunScript("SetBodyImage") 9cImageID = "WB00756_" _oHTML.RunScript("SetBodyImage") Sand background$Adds a background image to web page.:cImageID2 = "WB00760_" _oHTML.RunScript("SetBodyImage") 9cImageID = "WB00760_" _oHTML.RunScript("SetBodyImage") Southwest background$Adds a background image to web page.:cImageID2 = "WB00780_" _oHTML.RunScript("SetBodyImage") 9cImageID = "WB00780_" _oHTML.RunScript("SetBodyImage") Stained glass background$Adds a background image to web page.:cImageID2 = "WB00785_" _oHTML.RunScript("SetBodyImage") 9cImageID = "WB00785_" _oHTML.RunScript("SetBodyImage") Dust background$Adds a background image to web page.:cImageID2 = "WB00819_" _oHTML.RunScript("SetBodyImage") 9cImageID = "WB00819_" _oHTML.RunScript("SetBodyImage") Ram background$Adds a background image to web page.:cImageID2 = "WB01231_" _oHTML.RunScript("SetBodyImage") 9cImageID = "WB01231_" _oHTML.RunScript("SetBodyImage") Waves background$Adds a background image to web page.:cImageID2 = "WB01276_" _oHTML.RunScript("SetBodyImage") 9cImageID = "WB01276_" _oHTML.RunScript("SetBodyImage") Desert background$Adds a background image to web page.:cImageID2 = "WB01306_" _oHTML.RunScript("SetBodyImage") 9cImageID = "WB01306_" _oHTML.RunScript("SetBodyImage") Stars background$Adds a background image to web page.:cImageID2 = "WB01308_" _oHTML.RunScript("SetBodyImage") 9cImageID = "WB01308_" _oHTML.RunScript("SetBodyImage") Hands background$Adds a background image to web page.:cImageID2 = "WB01741_" _oHTML.RunScript("SetBodyImage") 9cImageID = "WB01741_" _oHTML.RunScript("SetBodyImage") Grid background$Adds a background image to web page.:cImageID2 = "WB01844_" _oHTML.RunScript("SetBodyImage") 9cImageID = "WB01844_" _oHTML.RunScript("SetBodyImage") Speckle background1_" _oHTML.RunScript("SetBodyImage") $Adds a background image to web page.:cImageID2 = "WB01845_" _oHTML.RunScript("SetBodyImage") 9cImageID = "WB01845_" _oHTML.RunScript("SetBodyImage") Granite background:cImageID2 = "WB01846_" _oHTML.RunScript("SetBodyImage") _
"," > ")}}" onclick="PageNext()">




.aProps[lnAlen,5] = tlGen!   bThis style displays data formatted in a split view with a column list in left frame and detail in right frame. It can be used for one-many style relationships. This style is recommended for read-only/display type web pages involving small to moderate amounts of data. It uses the Tabular Data Control which requires Microsoft Internet Explorer 4.0 or higher. Memo fields are not supported with this layout. Note: since this layout uses frames, some visual styles and advanced settings may not function properly. If you are experiencing problems where the detail frame is not refreshing properly (i.e., no data appearing), you may want to change the Filter field. The Tabular Data Control sometimes has problems filtering data based on a numeric Filter field. Try changing the Filter field to a character field. To do this, go to Step 1 of the Wizard and move the character field to the top of the Selected Fields list. If you are switching datasources in Step 1 between previews, you should go into the Options dialog and click on the Reset Datasource button to reset any pre-existing 1Many relationships.M IF VARTYPE(_oHTML.Body)#"O" RETURN ENDIF lcTitle = _oHTML.Head.Title.Item[1] IF TYPE("lcTitle")="C" AND !EMPTY(ALLTRIM(lcTitle)) loTitleHead = _oHTML.Body.AddTag("H2",1) loTitleHead.AddItem(ALLTRIM(lcTitle)) ENDIF  TropicalParadiseStyle ListTable'_oHTML.Head.Title.AddText("Customer")  TropicalParadiseStyle ListTable'_oHTML.Head.Title.AddText("Customer") 1.31.31.31.31.31.31.31.31.31.31.31.31.31.31.31.31.2testtest1.2GlobalTableStyleStatic List View This style displays data formatted in a tabular layout with field column headers. This style is recommended for read-only/display type web pages involving small to moderate amounts of data. The output generated is static so it can be used with most web browsers.  listview.bmpOptions=ListOptions4_oHTML.nTableStyle=0 _oHTML.Body.bgColor="silver" testGlobalTableStyle Tabular ListThis style displays data formatted in a tabular layout with column headers that provide sorting capabilities. Buttons are also provided to navigate through pages of data. This style is recommended for read-only/display type web pages involving small to moderate amounts of data. It uses the Tabular Data Control which requires Microsoft Internet Explorer 4.0 or higher. Memo fields are not supported with this layout._TabDataControl3(IIF(VERSION(2)=0,"",HOME()+"FFC\")+"_HTMLSty.vcx") tablist.bmpOptions=TabListOptions6_oHTML.nTableStyle=100 _oHTML.Body.bgColor="silver" test1.2GlobalTableStyleStatic List View This style displays data formatted in a tabular layout with field column headers. This style is recommended for read-only/display type web pages involving small to moderate amounts of data. The output generated is static so it can be used with most web browsers.  listview.bmpOptions=ListOptions4_oHTML.nTableStyle=0 _oHTML.Body.bgColor="silver" test1.2GlobalTableStyleStatic List View This style displays data formatted in a tabular layout with field column headers. This style is recommended for read-only/display type web pages involving small to moderate amounts of data. The output generated is static so it can be used with most web browsers.  listview.bmpOptions=ListOptions4_oHTML.nTableStyle=0 _oHTML.Body.bgColor="silver" testGlobalTableStyleStatic Detail ViewThis style displays data formatted in a columnar layout with each record separated by a line. This style is recommended for read-only/display type web pages involving small to moderate amounts of data. The output generated is static so it can be used with most web browsers. detailview.bmpOptions=StaticOptions4_oHTML.nTableStyle=1 _oHTML.Body.bgColor="silver" 1.2 TropicalParadiseStyle ListTable'_oHTML.Head.Title.AddText("Customer") 1.2 ListTable'_oHTML.Head.Title.AddText("Supercls")  ListTable'_oHTML.Head.Title.AddText("Supercls") 1.2test1.2GlobalTableStyleStatic List View This style displays data formatted in a tabular layout with field column headers. This style is recommended for read-only/display type web pages involving small to moderate amounts of data. The output generated is static so it can be used with most web browsers.  listview.bmpOptions=ListOptions4_oHTML.nTableStyle=0 _oHTML.Body.bgColor="silver" test1.2GlobalTableStyleStatic List View This style displays data formatted in a tabular layout with field column headers. This style is recommended for read-only/display type web pages involving small to moderate amounts of data. The output generated is static so it can be used with most web browsers.  listview.bmpOptions=ListOptions4_oHTML.nTableStyle=0 _oHTML.Body.bgColor="silver" test ListTable'_oHTML.Head.Title.AddText("Supercls") test ListTable'_oHTML.Head.Title.AddText("Supercls")  ListTable'_oHTML.Head.Title.AddText("Supercls")  ListTable'_oHTML.Head.Title.AddText("Supercls")  ListTable'_oHTML.Head.Title.AddText("Supercls")  ListTable'_oHTML.Head.Title.AddText("Supercls") 1.2 ListTable'_oHTML.Head.Title.AddText("Supercls") 1.2 ListTable'_oHTML.Head.Title.AddText("Supercls") 1.21.2test1.2GlobalTableStyleStatic List View This style displays data formatted in a tabular layout with field column headers. This style is recommended for read-only/display type web pages involving small to moderate amounts of data. The output generated is static so it can be used with most web browsers.  listview.bmpOptions=ListOptions4_oHTML.nTableStyle=0 _oHTML.Body.bgColor="silver" test1.4TitleHeader TabCtlHierarchical'_oHTML.Head.Title.AddText("Customer") TitleHeader TabCtlHierarchical'_oHTML.Head.Title.AddText("Customer") TitleHeader TabCtlHierarchical'_oHTML.Head.Title.AddText("Customer") f MM%l0U%B2G&(Generating HTML: () ...~C %CMN C {.CCC\<%C CbrCCChrU THIS LMESSAGEBAR CSOURCEFILEPROMPTOBJCODEBODYADDITEMMESSAGE ADDTAGITEM%C C 4B-TC%C0 6CFile ""  not found.B- TCWFTCC]@Q%C  F%G&(B- G(C' -TC%CN Q F%rG&( BU LCSOURCEFILE LLSUCCESSFUL LNLASTSELECTLCALIASTHIS CSOURCEFILEMSGBOX LMESSAGEBAR GENERATEMENU generatemenu,generate}1!A!AAQQAQA31qA!aqA!AaAqAAAaA2s)M